Flask开发(三)URL传递参数以及URL反转
内容纲要
本篇导读:
本篇主要内容如下:
- URL参数传递
- URL反转
- 页面跳转和重定向
URL传递参数
Flask中传递一个变量或或者一个参数,可以通过表单和地址栏两种方式。其中通过地址传递参数方式使用的比较多,这种方式优点是可以使用相同的url来传递不同的参数来访问不同的内容。
传递参数语法: '/<参数名>/' 参数要放在<>当中,视图函数中需要设置同名参数。
from flask import Flask,url_for app = Flask(__name__) @app.route('/') def hello_world(): return '这是url传参演示!' @app.route('/user/<name>') def list_name(name): return "接收到的名字为: %s" % name @app.route('/news/<int:id>') def list_news(id): return "接收到的id为: %s" % id if __name__ == '__main__': app.run(debug=True)
运行程序,在浏览器中输入http://127.0.0.1:5000/user/李雷,运行结果为:
在浏览器中输入http://127.0.0.1:5000/news/123456,运行结果为:
Flask可传递的参数类型有:
- name 传递字符串
- int 传递整数
- float 传递浮点数
- path 表示使用/
URL反转
有时候,在做网页重定向或是模板文件时需要使用在视图函数中第一的URL,我们必须根据视图函数名称得到当前所指向的URL,这就是URL反转。
from flask import Flask,url_for app = Flask(__name__) @app.route("/") def index(): url1=(url_for('news', id='10086')) print(url_for('index')) return "URL反转内容为:%s" % url1 @app.route('/news/<id>') def news(id): return u'您请求的参数是:%s' %id if __name__ == '__main__': app.run(debug=True)
上面代码中使用了url_for()函数,以函数名为参数,返回对应的URL。现在运行代码,在浏览器中输入http://127.0.0.1:5000/ 会看到以下结果:
页面跳转和重定向
用户在访问某个页面时,我们希望他登陆之后才能访问,如果此时用户没有登录,则跳转到登录页面进行登录,这就涉及到了页面重定向问题。所谓重定向,就是在打开一个页面时我们希望跳转到另一个页面。
在Falsk中提供了redirect()函数,用于也免得重定向。
from flask import Flask,url_for,redirect app=Flask(__name__) @app.route('/') def hello(): print('访问了hello这个视图函数!') url1=url_for('login') return redirect(url1) @app.route('/login') def login(): return '这是登录页面!' if __name__ == '__main__': app.run(debug=True)
在函数hello()中,使用url反转获取了登录的视图函数路径,然后使用redirect()函数重定向到了login页面。
打开浏览器,输入http://127.0.0.1:5000/发现,重定向到了login页面。
阅读剩余
版权声明:
作者:雪落长安
链接:https://blog.wlbc321.cn/index.php/2021/05/17/flask3/
文章版权归作者所有,未经允许请勿转载。
THE END