• 2、Flask实战第2天:URL传参


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

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

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

    @app.route('/article_list/')
    def article_list():
        return 'Article list'

    这样,我们访问127.0.0.1:5000/article_list/的时候,浏览器就会显示Article list

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

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

    @app.route('/article/<article_id>/')  #我们在<>里面写参数名article_id
    def article_detail(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

    from flask import Flask, request
    ...
    
    @app.route('/d/')
    def d():
        wd = request.args.get('wd')
        return '您传递的参数是: {}'.format(wd)
    

    如果你的页面想做SEO优化,就是被搜索引擎搜索到,那么推荐使用path形式

    如果无所谓,可以使用查询字符串方式

    提醒

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

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

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

  • 相关阅读:
    App提交Appstore审核流程【转】
    程序员必须软件
    Linux的cron和crontab
    Git操作基本命令
    Python编码问题整理【转】
    Python读取ini配置文件
    RF+Jenkins构建持续集成
    RF接口测试本地环境部署
    Python建立SSH连接与使用方法
    永久修改python默认的字符编码为utf-8
  • 原文地址:https://www.cnblogs.com/sellsa/p/9243613.html
Copyright © 2020-2023  润新知