安装flask
pip install flask
简单flask程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'hello world'
if __name__ == '__main__':
# app.debug = True
app.run()
运行后访问 http://127.0.0.1:5000/ ,你会看见 Hello World 问候。
注释
app = Flask(__name__)
第一个参数是应用模块或者包的名称。 如果你使用单一的模块(如本例),你应该使用 __name__ ,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同( 也即是 '__main__' 或实际的导入名)。这是必须的,这样 Flask 才知道到哪去找模板、静态文件等等。
@app.route('/')
使用 route() 装饰器告诉 Flask 什么样的URL 能触发我们的函数。类似于Java的注解
@app.route('/')
def index():
return 'Index Page'
@app.route('/hello')
def hello():
return 'Hello, World'
同时,你可以构造含有动态部分的 URL,也可以在一个函数上附着多个规则。
变量规则
要给 URL 添加变量部分,你可以把这些特殊的字段标记为 <variable_name> , 这个部分将会作为命名参数传递到你的函数。规则可以用 <converter:variable_name> 指定一个可选的转换器。这里有一些不错的例子:
@app.route('/user/<username>')
def show_user_profile(username):
# show the user profile for that user
return 'User %s' % username
@app.route('/post/<int:post_id>')
def show_post(post_id):
# show the post with the given id, the id is an integer
return 'Post %d' % post_id
最后我们用 run() 函数来让应用运行在本地服务器上。
调试模式
不需要重新运行就可以看到修改代码后的结果。
app.debug = True
app.run()
或
app.run(debug=True)
构造URL
在Web程序中常常需要获取某个页面的URL,在Flask中需要使用url_for('方法名')
来构造对应方法的URL。它接受函数名作为第一个参数,也接受对应 URL 规则的变量部分的命名参数。未知变量部分会添加到 URL 末尾作为查询参数。下面是Flask官方的例子。
from flask import Flask,url_for
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'hello world'
@app.route('/index')
def index():
pass
@app.route('/login')
def login():
pass
@app.route('/user/<username>')
def profile(username):
pass
if __name__ == '__main__':
with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
print(url_for('login',next='abc'))
print(url_for('profile',username='tom'))
输出结果如下:
/index
/login
/login?next=abc
/user/tom
HTTP方法
如果需要处理具体的HTTP方法,在Flask中也很容易,使用route
装饰器的methods
参数设置即可。
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
do_the_login()
else:
show_the_login_form()