一、route()路由
功能:将URL绑定到函数
用法:
@app.route(url, methods=['GET', 'POST']) #url必填,methods非必填
def view_func():
# 处理请求并返回响应
二、路由函数route()的使用
路由函数route()的调用有两种方式:静态路由和动态路由
方式1:静态路由
@app.route(“/xxx”) xxx为静态路径 如::/index ,可以返回一个值、字符串、页面等
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello_world():
return 'Hello World'
@app.route('/hello')
def index():
return render_template('hello.html')
if __name__ == '__main__':
app.run(debug = True)
方式2:动态路由
采用<>中标记变量动态构造url地址
@app.route(“/”),这里xxx为不确定的路径
from flask import Flask
app = Flask(__name__)
@app.route('/flaskStudy/<name>')
def hello_name(name):
return 'Hello %s!' % name
if __name__ == '__main__':
app.run(debug = True)
如果浏览器地址栏输入:http:// localhost:5000/flaskStudy/Jim
则会在页面显示:flaskStudy Jim!
<>中标记的变量,默认接收到的变量类型是string,可以框架自带的转换器,可以置于参数前将接收的参数转化为对应类型。如下:
string 接受任何不包含斜杠的文本
int 接受正整数
float 接受正浮点数
path 接受包含斜杠的文本
@app.route("/index/<int:id>",)
def index(id):
if id == 1:
return 'first'
elif id == 2:
return 'second'
elif id == 3:
return 'thrid'
else:
return 'hello world!'
if __name__=='__main__':
app.run()
3、url地址更新
如果使用蓝图,蓝图中参数:url_prefix还可以统一调整url地址,格式如:form = Blueprint(‘formDis111’, name, url_prefix=“/news”)
则表示在该蓝图下,所有的url地址访问路径中都要加上xxx路径,即域名/xxx/路由
三、route()其它参数
methods: 当前视图函数支持的请求方式,不设置默认为GET;请求方式不区分大小写
- methods=[‘GET’] 支持的请求方法为GET
- methods=[‘POST’] 支持的请求方法为POST
- methods=[‘GET’,‘POST’] 支持的请求方法为POST GET
@app.route('/login', methods=['GET', 'POST']) # 请求参数设置不区分大小写,源码中自动进行了upper
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
username = request.form.get('username')
pwd = request.form.get('password')
if username == 'admin01' and pwd== '123456':
return 'login successed'
else:
return 'login failed!!!'