一、带参数的URL-默认字符串类型
@app.route('/blog/<blog_id>')
def blog_detail(blog_id):
return f'您访问的博客是:{blog_id}'
代码中‘blog_id’为传递的参数,通过路由进行传递
二、带参数的URL-参数为int类型
@app.route('/blog/<int:blog_id>')
def blog_detail(blog_id):
return f'您访问的博客是:{blog_id}'
三、带参数的URL-参数为any类型
any类型,只备选中任意一个,下面代码中,使用<>里面存放参数,只能选择python,go,c中的任意一种作为参数
@app.route("/blog/list/<any(python,go,c):category>")
def language(category):
return f'您获取的博客分类为:{category}'
四、查询字符串的方式传参
需要导入request 模块,地址栏处输入:/book/list?page=1,打印出内容
@app.route('/book/list')
def get_book_list():
pages = request.args.get("page",default=1,type=int)
return f"您获取的是第{pages}页的图书"
五、参数的URL-传递多个参数
传递多个参数,使用‘/’分割开来
@app.route("/blog/user/<int:userid>/<int:page>")
def get_user_page(userid,page):
return f"您查询的用户ID{userid},页面为{page}"
六、重定向——暂时重定向
在flask中,重定向是通过flask.redirect(location,code=302)函数来实现的,location是需要重定向到哪个url,code代表代码状态,默认是302,需要导入redirect模块
地址栏处输入:/profile,重定向到login,页面输出’登录页面‘
地址栏处输入:/profile?name=admin,不会重定向,页面输出’admin‘
@app.route("/login")
def login():
return "登录页面"
@app.route('/profile')
def profile():
name = request.args.get("name")
if not name:
return redirect('/login')
else:
return name
整体代码如下
from flask import Flask,request,redirect
#使用Flask类创建APP对象
#__name :代表当前app.py模块
#1、对于寻找模版文件,有一个相对路径
#2、以后出现bug,可以快速定位
app = Flask(__name__)
#创建一个路由和视图函数的映射
@app.route('/')
def hello_world():
return "hello 北京 !!!"
#带参数的url
@app.route('/blog/<int:blog_id>')
def blog_detail(blog_id):
return f'您访问的博客是:{blog_id}'
#查询字符串的方式传参
@app.route('/book/list')
def get_book_list():
pages = request.args.get("page",default=1,type=int)
return f"您获取的是第{pages}页的图书"
@app.route("/blog/list/<any(python,go,c):category>")
def language(category):
return f'您获取的博客分类为:{category}'
@app.route("/blog/user/<int:userid>/<int:page>")
def get_user_page(userid,page):
return f"您查询的用户ID{userid},页面为{page}"
#暂时重定向
@app.route("/login")
def login():
return "登录页面"
@app.route('/profile')
def profile():
name = request.args.get("name")
if not name:
return redirect('/login')
else:
return name
if __name__ == '__main__':
app.run(debug=True,host="0.0.0.0",port=8000)