1、flask快速入门

2017-08-28  本文已影响0人  线圈册

一、一个最小的应用窥探flask基本结构

from flask import Flask #从flask中导入Flask
app = Flask(__name__) 创建一个实例

@app.route('/') #装饰器、设置路由,需要写在函数前面
def hello_world():  #定理一个方法(无参数)
    return 'Hello World!'   #返回字符串
    #当浏览器访问时,将字符串返回到浏览器页面

if __name__ == '__main__':#判断是不是启动文件
#确保服务器只会在该脚本被 Python解释器直接执行
的时候才会运行,而不是作为模块导入的时候。
    app.run() #运行

可以看出app.run()中没有传递参数,实质上里面是个默认参数
app.run(host ='127.0.0.1')代表本机。

还有以下集中设置方法

app.run(host='0,0,0,0') #代表外部网络可ui访问的公共的
app.run(host='127.0.0.1')#代表本机

二、调试模式

你启用了调试支持,服务器会在代码修改后自动重新载入,
并在发生错误时提供一个相当有用的调试器。
有两种途径来启用调试模式。

#第一种
再app实例化后调用
app.debug = True
#第二种
作为 run 方法的一个参数传入:
app.run(debug=True)

注意:绝对不能用于生产环境

三、路由

route() 装饰器把一个函数绑定到对应的 URL 上

#超级超级基础的演示示例

@app.route('/')
def index():
    return 'Index Page'

@app.route('/hello')
def hello():
    return 'Hello World'
 
/route()里面的东西就是匹配的内容

四、变量规则

·要给 URL 添加变量部分

·你可以把这些特殊的字段标记为 <variable_name>

#第一种,简简单单接收再返回个变量
@app.route('/user/<username>')
def show(username):
    return 'User %s' % username
    
#第二种,简简单单接收再返回个带类型的参数
@app.route('/post/<int:post_id>')
def show_post(post_id):
    return 'Post %d' % post_id

当然,还有下面几种设置类型的参数

类型名称 功能
int 可接收整数
float 可接受浮点数
path 默认、也可接受斜线

五、解决问题的唯一URL重定向

@app.route('/projects/')里面的内容必须双斜线!!!

六、自己构造URL

#假装有个写好的方法

@app.route('/user/<name>')
def showUserName(name):
    return 'User %s' %name
    
    
#魔术开始,构建URL    
@app.route('/redir/<n>')
def redir(n):
    return redirect(url_for('showUserName',name=n))
    

它接受函数名作为第一个参数,也接受对应
URL 规则的变量部分的命名参数。

七、使用Flask-Script支持命令行选项

Flask-Script 扩展使用
pip 安装:

(venv) $ pip install flask-script
(注意venv,确保实在虚拟环境下)

#关键代码
from flask_script import Manager
#导入flask_script包
manager = Manager(app)
实例化manager

这样修改完,可以调整一下运行代码
if __name__ == '__main__':
manager.run()
手动debug升级为自动
命令:
python2 hello.py runserver -d -r --host 0.0.0.0
# -d  debug 设置为debug模式,而不是run模式
# -r reload 设置自动重新载入(app.debug为True)
上一篇下一篇

猜你喜欢

热点阅读