第一个flask应用: Hello Flask
# -*- coding: UTF-8 -*-
from flask import Flask
app=Flask(__name__)
# 使用装饰器route()告诉Flask哪个URL才能触发我们的函数(把一个函数绑定到一个URL上),本例中将hello_falsk函数绑定到根目录下
@app.route('/')
def hello_falsk():
return 'Hello Flask!'
#本例中将index函数绑定到根目录/index下
@app.route('/index')
def index():
return 'Hello Flask!,This is index page...'
if __name__=='__main__':
#运行结果Running on http://127.0.0.1:5000/;只能从自己计算机上访问,网络上任何地方都不能访问
#app.run()
#让操作系统监听所有公开的IP,暂时不能实现外网计算机访问
#app.run(host='0.0.0.0')
#启用调试支持,在代码修改的时候服务器能够自动加载,并且如果发生错误,它会提供一个有用的调试器
#app.run(debug=True)
app.run(debug=True)
运行结果是http://127.0.0.1:5000/显示 “Hello Flask!”; http://127.0.0.1:5000/index显示 “Hello Flask!,This is index page...”
可以给url添加变量
#给URL添加变量
@app.route('/user/<username>')
def show_username(username):
return 'Hello Flask! Username is '+username
@app.route('/number/<int:id>')
def show_number(id):
return 'Hello Flask! Number is '+str(id)
唯一URLs/重定向行为
#唯一URLs/重定向行为
@app.route('/projects/')
def view_projects():
return 'Hello Flask!,This is projects page...'
运行结果是http://127.0.0.1:5000/projects会自动定位到http://127.0.0.1:5000/projects/
使用url_for为函数构建URL,允许一次性修改URL,而不是到处找URL修改
with app.test_request_context(): url_for('show_username',username='Molly')
上下文
Flask可以通过上下文将某些对象变成全局访问
#请求上下文
from flask import request
@app.route('/agent')
def show_Agent():
user_agent=request.headers.get('User-Agent')
return 'Hello Flask! user_agent is '+user_agent
#程序上下文
from flask import current_app
app_ctx=app.app_context()#获得程序上下文
app_ctx.push()#激活程序上下文
print current_app.name
app_ctx.pop()#删除程序上下文