Flask之flask-script模块使用

Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开;

Flask Script和Flask本身的工作方式类似,只需定义和添加从命令行中被Manager实例调用的命令;

官方文档:http://flask-script.readthedocs.io/en/latest/

创建并运行命令

首先,创建一个Python模板运行命令脚本,可起名为manager.py;

在该文件中,必须有一个Manager实例,Manager类追踪所有在命令行中调用的命令和处理过程的调用运行情况;

Manager只有一个参数——Flask实例,也可以是一个函数或其他的返回Flask实例;

调用manager.run()启动Manager实例接收命令行中的命令;

#-*-coding:utf8-*-
from flask_script import Manager
from debug import app 

manager = Manager(app) 

if __name__ == '__main__':
 manager.run()

其次,创建并加入命令;

有三种方法创建命令,即创建Command子类、使用@command修饰符、使用@option修饰符;

第一种——创建Command子类

Command子类必须定义一个run方法;

举例:创建Hello命令,并将Hello命令加入Manager实例;

from flask_script import Manager ,Server
from flask_script import Command
from debug import app 

manager = Manager(app) 

class Hello(Command):
 'hello world'
 def run(self):
  print 'hello world' 

#自定义命令一:
manager.add_command('hello', Hello())
# 自定义命令二:

manager.add_command("runserver", Server()) #命令是runserver
if __name__ == '__main__':
 manager.run()

执行如下命令:

python manager.py hello
> hello world

python manager.py runserver
> hello world

第二种——使用Command实例的@command修饰符

#-*-coding:utf8-*-
from flask_script import Manager
from debug import app 

manager = Manager(app) 

@manager.command
def hello():
 'hello world'
 print 'hello world' 

if __name__ == '__main__':
 manager.run()

该方法创建命令的运行方式和Command类创建的运行方式相同;

python manager.py hello
> hello world

第三种——使用Command实例的@option修饰符

复杂情况下,建议使用@option;

可以有多个@option选项参数;

from flask_script import Manager
from debug import app 

manager = Manager(app) 

@manager.option('-n', '--name', dest='name', help='Your name', default='world') #命令既可以用-n,也可以用--name,dest="name"用户输入的命令的名字作为参数传给了函数中的name
@manager.option('-u', '--url', dest='url', default='www.csdn.com') #命令既可以用-u,也可以用--url,dest="url"用户输入的命令的url作为参数传给了函数中的url

def hello(name, url):
'hello world or hello <setting name>'
 print 'hello', name
 print url 

if __name__ == '__main__':
 manager.run()

运行方式如下:

python manager.py hello
>hello world
>www.csdn.com

python manager.py hello -n sissiy -u www.sissiy.com
> hello sissiy
>www.sissiy.com

python manager.py hello -name sissiy -url www.sissiy.com
> hello sissiy
>www.sissiy.com

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • flask中的wtforms使用方法

    一.简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 二.简单使用wtforms组件 1.用户登录 具体代码: from flask import Flask,render_template,request,redirect from wtforms.fields import core from wtforms.fields import html5 from wtfo

  • Flask框架Flask-Principal基本用法实例分析

    本文实例讲述了Flask框架Flask-Principal基本用法.分享给大家供大家参考,具体如下: Flask-Principal是Flask框架的一个扩展,主要主件是Identity,Needs,Permission和IdentityContext. Identity:代表用户,从各个位置存储和加载每个请求,包含用户拥有的访问权限. Needs:需求是访问控制的最小粒度,代表了这种情况的具体参数.例如:管理用户.可以编辑帖子. Permission:权限 IdentityContext:针对

  • Flask模拟实现CSRF攻击的方法

    CSRF CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造. CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求. 包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账...... 造成的问题:个人隐私泄露以及财产安全. CSRF攻击示意图 客户端访问服务器时没有同服务器做安全验证 防止 CSRF 1.在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值 2.在 Form 表单中添加一个

  • Flask框架URL管理操作示例【基于@app.route】

    本文实例讲述了Flask框架URL管理操作.分享给大家供大家参考,具体如下: 动态URL规则 URL规则可以添加变量部分,也就是将符合同种规则的URL抽象成一个URL模式,如"/item/1/","/item2/",假如不抽象,我们就得这样写: @app.route("/item/1/") 动态URL写法: @app.route("/item1/<id>/") def item1(id): pass 尖括号的内容是

  • 使用Flask集成bootstrap的方法

    1. 下载flask-bootstrap pip install flask-bootstrap 2. 找到base.html文件 将site-packages\flask_bootstrap\templates文件夹下的bootstrap目录copy到你的项目\templates目录下,确保bootstrap目录下包含base.html文件,因为我们后面要用到. 3. 代码 user.html : {% extends "bootstrap/base.html" %} {% bloc

  • Flask框架Flask-Login用法分析

    本文实例讲述了Flask框架Flask-Login用法.分享给大家供大家参考,具体如下: Flask-Login插件中带了6种信号,可以基于其中的信号做一些额外工作,比如user_logged_in来记录用户的登录次数和登录IP等. 安装 pip install flask-login 初始化 import flask import Flask from flask_login import LoginManager app = Flask(__name__) login_manager = L

  • Flask框架响应、调度方法和蓝图操作实例分析

    本文实例讲述了Flask框架响应.调度方法和蓝图操作.分享给大家供大家参考,具体如下: 响应 像现在大部分的互联网应用用的数据传输格式都是JSON,当用户访问一个URL,我们如何通过Flask返回JSON的响应: 普通做法: @app.route("/") def showInfo(): return jsonify({"name":"老王","age":18}) 当我们的应用有大量的URL时,我们需要每次都用jsonify转

  • Flask框架信号用法实例分析

    本文实例讲述了Flask框架信号用法.分享给大家供大家参考,具体如下: 项目功能复杂,代码量越大,就越需要做业务解耦.否则在其之上做开发和维护是很痛苦的,尤其是对于团队的新人.Flask从0.6开始,通过Blinker提供了信号支持.信号就是在框架核心功能或者一些Flask扩展发生工作时所发送的通知,用于帮助你解耦应用. Blinker的使用 安装 pip install blinker Blinker的信号与接收方式 from blinker import signal s = signal(

  • Flask框架配置与调试操作示例

    本文实例讲述了Flask框架配置与调试操作.分享给大家供大家参考,具体如下: 配置管理 复杂的项目需要配置各种环境.如果设置项很少,可以直接硬编码进来,比如下面的方式: app = Flask(__name__) app.config['DEBUG'] = True app.config是flask.config.Config类的实例,继承自Python内置数据结构dict,所以可以使用update方法: app.config.update( DEBUG = True, ... ) app.co

  • Flask框架使用DBUtils模块连接数据库操作示例

    本文实例讲述了Flask框架使用DBUtils模块连接数据库的操作方法.分享给大家供大家参考,具体如下: Flask连接数据库 数据库连接池: Django使用:django ORM(pymysql/MySqldb) Flask/其他使用: -原生SQL         -pymysql(支持python2/3)         -MySqldb(支持python2)     -SQLAchemy(ORM) 原生SQL 需要解决的问题: -不能为每个用户创建一个连接         -创建一定数

  • Flask中sqlalchemy模块的实例用法

    一.安装 $ pip install flask-sqlalchemy 二.配置 配置选项列表 : SQLALCHEMY_NATIVE_UNICODE | 可以用于显式禁用原生 unicode 支持.当使用 不合适的指定无编码的数据库默认值时,这对于 一些数据库适配器是必须的(比如 Ubuntu 上某些版本的 PostgreSQL ).| | SQLALCHEMY_POOL_SIZE | 数据库连接池的大小.默认是引擎默认值(通常 是 5 ) | | SQLALCHEMY_POOL_TIMEOU

  • Python使用Flask Migrate模块迁移数据库

    目录 前言 安装 初始化 项目结构 三大命令 前言 本篇文章,阐述一下Flask中数据库的迁移 为什么要说数据库迁移呢? 比如我们以前有一个数据库,里面的信息有 id, name现在我想再加一个gender属性,应该怎么办呢?不可能直接把数据库删除掉吧.然后重新创建一个,因此本文介绍一种,通过数据库迁移的方法,可以保留原始的数据,并完成添加新的一列的方法. 安装 直接使用pip install flask-migrate即可 初始化 项目结构 # exts.py from flask_sqlal

  • flask路由分模块管理及自定义restful响应格式详解

    目录 一.flask路由分模块管理 1.1.使用蓝图 1.2.使用flask_restful 二.自定义flask_restful响应格式 一.flask路由分模块管理 1.1.使用蓝图 在flask中可以使用蓝图Blueprint来进行创建路由进行分模块. 具体操作,我们可以在项目根目录下创建一个controller文件夹来存储分模块的路由. 在controller文件夹里创建product_controller.py,在里面如下写法引入蓝图,并且注册蓝图: from flask import

  • Python的Flask框架与数据库连接的教程

     命令行方式运行Python脚本 在这个章节中,我们将写一些简单的数据库管理脚本.在此之前让我们来复习一下如何通过命令行方式执行Python脚本. 如果Linux 或者OS X的操作系统,需要有执行脚本的权限.例如: chmod a+x script.py 该脚本有个指向使用解释器的命令行.再脚本赋予执行权限后就可以通过命令行执行,就像这样: like this: ./script.py <arguments> 然而,在Windows系统上这样做是不行的,你必须提供Python解释器作为必选参

  • Flask的图形化管理界面搭建框架Flask-Admin的使用教程

    Flask-Admin是Flask框架的一个扩展,用它能够快速创建Web管理界面,它实现了比如用户.文件的增删改查等常用的管理功能:如果对它的默认界面不喜欢,可以通过修改模板文件来定制: Flask-Admin把每一个菜单(超链接)看作一个view,注册后才能显示出来,view本身也有属性来控制其是否可见:因此,利用这个机制可以定制自己的模块化界面,比如让不同权限的用户登录后看到不一样的菜单: 项目地址:https://flask-admin.readthedocs.io/en/latest/

  • 在阿里云服务器上配置CentOS+Nginx+Python+Flask环境

    项目运行环境 阿里云(单核CPU, 1G内存, Ubuntu 14.04 x64 带宽1Mbps), 具体购买和ssh连接阿里云本文不做描述. 实用工具 首先进入阿里云后先要升级下apt-get, 并下载所需软件 sudo apt-get update sudo apt-get install vim git wget tmux 我还会使用zsh和oh-my-zsh来替换bash sudo apt-get install zsh # 终端下打以下命令 wget --no-check-certif

  • Python的Flask框架中web表单的教程

     概要 在前面章节我们为主页定义了一个简单的模板,部分尚未实现的模块如用户或帖子等使用模拟的对象作为临时占位. 本章我们将看到如何利用web表单填补这些空白. web表单是web应用中最基本的构建要素,我们将通过表单来实现用户发帖和应用登录功能. 完成本章内容你需要基于前面章节完成的微博应用代码,请确认这些代码已安装并能正常运行. 配置 Flask-WTF是WTForms项目的Flask框架扩展,我们将用他来帮助我们处理web表单. 大部分Flask扩展都需要定义相关配置项,所以我们先来在应用根

  • 使用Python的Flask框架来搭建第一个Web应用程序

    1.初始化 在这章,你将学到Flask应用程序的不同部分.同时,你将编写和运行你的第一个Flask web应用程序. 所有的Flask应用程序都必须创建一个 应用程序实例 .使用web服务器网关接口协议将所有从客户端接收的请求传递给这个对象处理.这个应用程序实例就是Flask类的一个对象,通常使用下面的方式创建: from flask import Flask app = Flask(__name__) Flask类构造函数唯一需要的参数就是应用程序的主模块或包.对于大多数应用程序,Python

  • 使用Python的Flask框架构建大型Web应用程序的结构示例

    虽然小型web应用程序用单个脚本可以很方便,但这种方法却不能很好地扩展.随着应用变得复杂,在单个大的源文件中处理会变得问题重重. 与大多数其他web框架不同,Flask对大型项目没有特定的组织方式:应用程序的结构完全交给开发人员自己决定.在这一章,提出一个可能的方式来组织管理一个大型应用程序的包和模块.这种结构将用于书中其余的示例中. 1.项目结构 示例 基本多文件Flask应用结构 |-flasky |-app/ |-templates/ |-static/ |-main/ |-__init_

随机推荐