路由
-
route()
装饰器把一个函数绑定到对应的URL上
@app.route('/)
def index():
return 'Index Page'
@app.route('/hello')
def hello():
return 'Hello World'
- 动态路由(路由含变量),变量字段用
<username>
这种形式
@app.route('/user/<username>')
def show_user_profile(username):
return 'User %s' % username
@app.route('/post/<int:post_id>') #int指定类型,接受整数,也可以是float/path
def show_post(post_id):
return 'Post %d' % post_id
- 唯一url/重定向行为。
并没有看懂
- 构造url,
url_for()
函数可以给指定的函数构造url,接受函数名作为第一个参数,也接受对应URL规则的变量部分的命名参数(真够绕的),未知变量部分会添加到URL末位作为查询参数
from flask import Flask,url_for
app = Flask(__name__)
@app.route('/')
def index():pass
@app.route('/login')
def login():pass
@app.route('/user/<username>')
def profile(username):pass
with app.test_request_context():
print url_for('index')
print url_for('login')
print url_for('login',next='/')
print url_for('profile',username='Meng')
- HTTP方法,默认情况下,路由只回应GET请求,但是通过route()装饰器传递methods参数可以改变这个行为
@app.route('/login',methods=['GET','POST'])
def login():
if request.method == 'POST':
do_the_login()
else:
show_the_login_form()