• python3 Flask -day2


    flask 实战第二天,url传参

    当我们访问网站/的时候,会执行hell_world函数,并把这个函数的返回值返回给浏览器,这样浏览器就显示hello world了

    @app.route('/')
    def hello_world():
        return 'Hello World!'

    按照这种映射关系,我们可以再写一个,比如文章列表

    @app.route("/acticle_list/")
    def acticle_list():
        return "Acticle list"

    那么我们要如何给url传参呢?

    比如我们来写个文章详情页

    @app.route("/acticle_list/<article_id>/")#我们在<>里面写参数名article_id
    def acticle_list(article_id): #这里的参数名和上面的一直,即article_id
        return "您请求的文章是:{}".format(article_id)

    访问http://127.0.0.1:5000/article/1/

    限定参数数据类型

    可以对参数限定数据类型,比如上面的文章详情,限定article_id必须为整数型

    @app.route('/article/<int:article_id>/')
    def article_detail(article_id):
        return '您请求的文章是:{}'.format(article_id)

    这样当我们传递的参数是int类型的时候才能正常访问,其他类型都会返回404

    类型可以设置提下几种:

      string: 默认的数据类型,接收没有任何斜杠"   /"的文本

      int: 整数形

      float: 浮点型

      path: 和string类似,但是接受斜杠

      uuid: 只接受uuid字符串

      any: 可以指定多种路径,比如以下例子

    @app.route('/<any(article,blog):url_path>/<id>/')
    def item(url_path, id):
        if url_path == 'article':
            return '文章详情:{}'.format(id)
        else:
            return '博客详情:{}'.format(id)

     ?key=value形式传参

    上面我们接受参数使用的是path形式,下面我们来使用查询字符串的形式,即?key=value

    如果有多个参数,则用&来拼接: ?key1=value1&key2=value2

    @app.route("/d/")
    def d():
        wd=request.args.get('wd')
        return "你传递的参数是:{}".format(wd)

    flask获取参数方式:

    request.form.get("key", type=str, default=None) 获取表单数据

    request.args.get("key") 获取get请求参数

    request.values.get("key") 获取所有参数

    提醒

    在定义url的时候,一定记得在最后加一个斜杠,

    1、如果不加斜杠,那么在浏览器中访问这个url的时候最后加了斜杠,那么就访问不到了,用户体验不好

    2、搜索引擎会将不加斜杠的和加斜杠的视为不同的url,而实际上是同一个,那么会给浏览器造成一个误解,加了斜杠就不会出现斜杠的问题

     

  • 相关阅读:
    Scala语言
    Eclipse的各种问题
    Java:
    Come on
    问题:实现继承的抽象方法
    Android:报错AndroidManifest.xml file missing
    正则表达式
    Android:相对布局Relativeyout中的属性解释
    Android:生命周期案例
    Android:设置APP全屏、横屏、竖屏、常亮的方法
  • 原文地址:https://www.cnblogs.com/xinbaby2358/p/10255549.html
Copyright © 2020-2023  润新知