您的位置:88bifa必发唯一官网 > 八八必发娱乐 > 在url中传送参数

在url中传送参数

发布时间:2019-09-24 18:24编辑:八八必发娱乐浏览(158)

    图片 1

    如果不想定制子路径来传递参数,也可以通过传统的?=的形式来传递参数,例如:/article?id=xxx,这种情况下,可以通过request.args.get来获取id的值。如果是post方法,则可以通过request.form.get来进行获取。

    自己写个url映射到自定义的视图函数

    新创建项目

    图片 2

    • string: 默认的数据类型,接受没有任何斜杠/的字符串。
    • int: 整形
    • float: 浮点型。
    • path: 和string类似,但是可以传递斜杠/
    • uuid:uuid类型的字符串。
    • any:可以指定多种路径,这个通过一个例子来进行说明:

        @app.route('/<any(article,blog):url_path>/')  def item:      return url_path
      

      以上例子中,item这个函数可以接受两个URL,一个是/article/,另一个是/blog/。并且,一定要传url_path参数,当然这个url_path的名称可以随便。

    运行访问

    图片 3

    图片 4

    图片 5

    其中<id>,尖括号是固定写法,语法为<variable>variable默认的数据类型是字符串。如果需要指定类型,

    from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world():    return 'Hello World!'#自定义访问返回结果@app.route('/list/')def article_list():    return 'article list'#带参数传递@app.route('/article/<id>/')def article:    return '%s article' % idif __name__ == '__main__':    app.run()
    

    app.py

    则要写成<converter:variable>,其中converter就是类型名称,可以有以下几种:

    在url中传递参数

    构造URL:

    一般我们通过一个URL就可以执行到某一个函数。如果反过来,我们知道一个函数,怎么去获得这个URL呢?url_for函数就可以帮我们实现这个功能。url_for()函数接收两个及以上的参数,他接收函数名作为第一个参数,接收对应URL规则的命名参数,如果还出现其他的参数,则会添加到URL的后面作为查询参数。

    通过构建URL的方式而选择直接在代码中拼URL的原因有两点:

    1. 将来如果修改了URL,但没有修改该URL对应的函数名,就不用到处去替换URL了。
    2. url_for()函数会转义一些特殊字符和unicode字符串,这些事情url_for会自动的帮我们搞定。

    图片 6

    from flask import Flask,url_forapp = Flask(__name__)@app.route('/')def hello_world():    #将my_list函数名以字符串方式传到url_for里面    print(url_for('my_list'))    return 'Hello World!'@app.route('/list/')def my_list():    return 'my_list'if __name__ == '__main__':    app.run()
    

    运行,访问浏览器查看结果

    图片 7

    在控制台打印出了如下结果:

    图片 8

    在url_for添加参数,会自动添加到url后面

    图片 9

    以后不管你原来的url如何修改,我都能通过url_for返回你修改过的正确url

    # url_for笔记:

    ### `url_for`的基本使用:
    `url_for`第一个参数,应该是视图函数的名字的字符串。后面的参数就是传递给`url`。
    如果传递的参数之前在`url`中已经定义了,那么这个参数就会被当成`path`的形式给
    `url`。如果这个参数之前没有在`url`中定义,那么将变成查询字符串的形式放到`url`中。
    ```python
    @app.route('/post/list/<page>/')
    def my_list:
    return 'my list'

    print(url_for('my_list',page=1,count=2))
    # 构建出来的url:/my_list/1/?count=2
    ```

    ### 为什么需要`url_for`:
    1. 将来如果修改了`URL`,但没有修改该URL对应的函数名,就不用到处去替换URL了。
    2. `url_for`会自动的处理那些特殊的字符,不需要手动去处理。
    ```python
    url = url_for('login',next='/')
    # 会自动的将/编码,不需要手动去处理。
    # url=/login/?next=/
    ```

    ### 强烈建议以后在使用url的时候,使用`url_for`来反转url。

    本文由88bifa必发唯一官网发布于八八必发娱乐,转载请注明出处:在url中传送参数

    关键词: 八八必发娱乐

上一篇:其余全为0的数八八必发娱乐

下一篇:没有了