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/&lt;name>')
def list_name(name):
    return "接收到的名字为: %s" % name
@app.route('/news/&lt;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/&lt;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页面。

 

阅读剩余
THE END