Flask
简单示例
from flask import Flask
#创建Flash实例,用于运行
app = Flask(__name__)
#给指定方法指定访问url
@app.route('/')
def hello():
return 'Hello World!'
if __name__ == '__main__':
app.run()
#默认app.run()在debug模式只限于你本地访问,如果想让外网可以访问,使用app.run(host='0.0.0.0')
Debug模式
默认生产模式下代码改动不会导致服务器重启以读取你的代码,在debug模式下代码改动会导致服务器重启并且会在错误时为你提供更多的信息,方便你调试.
#开启debug模式
app.debug = True
app.run()
#或者
app.run(debug=True)
路由
@app.route('/')
def index():
return 'Index Page'
@app.route('/hello')
def hello():
return 'Hello World'
变量规则
指定通过url传入的值,也可以提前定好类型
类型 | 含义 |
---|---|
int | 整型 |
float | 浮点型 |
path | 像默认的一样,但是接受/ |
flask会自动帮你分析变量,匹配正确的类型的路由方法
@app.route('/user/<username>')
def show_user_profile(username):
return 'User %s' % username
@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'Post %d' % post_id
唯一的URL和重定向行为
@app.route('/projects/')
def projects():
return 'The project page'
@app.route('/about')
def about():
return 'The about page'
尽管以上两个路由看起来相同,但是它们确实不同,一个在尾部有/,一个没有.
对于第一种情况,如果在访问时在projects后没有添加/,则Flask会帮你重定向到带/的URL
对于第二种情况,如果添加了/则会导致404错误.
URL创建
url_for()可以为指定的函数生成访问url.
第一个参数为函数名,第二个参数为关键字参数,对于传入的关键字参数,如果名称符合该函数路由声明的类型,则对应匹配.否则按照URL的查询参数构造URL
>>> from flask import Flask, url_for
>>> app = Flask(__name__)
>>> @app.route('/')
... def index(): pass
...
>>> @app.route('/login')