flask中路由系统

摘要:
“POST”])defstudent_info():stu_Id=int(request.args[“Id”])return f“HelloWorld!{{stu_Id}}”#Python 3.6 f“{variable name}”端点的新功能:

flask中的路由我们并不陌生,从一开始到现在都一直在应用

@app.route("/",methods=["GET","POST"])

1.@app.route()装饰器中的参数

methods:当前url地址,允许访问的请求方式

@app.route("/info", methods=["GET", "POST"])
def student_info():
    stu_id = int(request.args["id"])
    return f"Hello World! {{ stu_id }}" # Python3.6的新特性 f"{变量名}"

endpoint: 反向url地址,默认为视图函数名(url_for)

from flask import url_for


@app.route("/info", methods=["GET", "POST"], endpoint="r_info")
def student_info():
    print(url_for("r_info"))  # /info
    stu_id = int(request.args["id"])
    return f"Hello stu {stu_id}"  # Python3.6的新特性 f"{变量名}"

 defaults : 视图函数的参数默认值{"nid":1}

from flask import url_for


@app.route("/info", methods=["GET", "POST"], endpoint="r_info", defaults={"nid": 100})
def student_info(nid):
    print(url_for("r_info"))  # /info
    # stu_id = int(request.args["id"])
    print(nid)  # 100
    return f"Hello stu {nid}"  # Python3.6的新特性 f"{变量名}"

 strict_slashes : url地址结尾符"/"的控制 False : 无论结尾 "/" 是否存在均可以访问 , True : 结尾必须不能是 "/"

# 访问地址 : /info 
@app.route("/info", strict_slashes=True)
def student_info():
    return "Hello stu info"


# 访问地址 : /infos  or  /infos/
@app.route("/infos", strict_slashes=False)
def student_infos():
    return "Hello stu infos"

 redirect_to : url地址重定向

# 访问地址 : /info 浏览器跳转至 /infos
@app.route("/info", strict_slashes=True, redirect_to="/infos")
def student_info():
    return "Hello stu info"

@app.route("/infos", strict_slashes=False)
def student_infos():
    return "Hello stu infos"

 subdomain : 子域名前缀 subdomian="mikers.cn" 这样写可以得到 DragonFire.oldboyedu.com 前提是app.config["SERVER_NAME"] = "oldboyedu.com"

app.config["SERVER_NAME"] = "oldboy.com"

@app.route("/info",subdomain="DragonFire")
def student_info():
    return "Hello stu info"

# 访问地址为:  DragonFire.oldboy.com/info

 2.动态参数路由

from flask import url_for


# 访问地址 : http://127.0.0.1:5000/info/1
@app.route("/info/<int:nid>", methods=["GET", "POST"], endpoint="r_info")
def student_info(nid):
    print(url_for("r_info",nid=2))  # /info/2
    return f"Hello stu {nid}"  # Python3.6的新特性 f"{变量名}"

<int:nid> 就是在url后定义一个参数接收

但是这种动态参数路由,在url_for的时候,一定要将动态参数名+参数值添加进去,否则会抛出参数错误的异常

免责声明:文章转载自《flask中路由系统》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇go.jsgeotrellis使用(四十二)将 Shp 文件转为 GeoJson下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】WPF之DataGrid应用

前几天打算尝试下DataGrid的用法,起初以为应该很简单,可后来被各种使用方法和功能实现所折磨。网络上的解决方法太多,但也太杂。没法子,我只好硬着头皮阅览各种文献资料,然后不断的去尝试,总算小有成果。因此,把我学到的和大家分享一下,相信这篇文章会让你再很短的时间内学会DataGrid的大部分主要功能,而且很多难点都可以在里面找到解决方案。 由于涉及的应用...

12.bss段的初始化

12.bss段的初始化 在C代码:有初始化全局的数据段,局部的栈,malloc部分的堆,未初始化的全局的bss段。 从上面的编译的信息知道: Bss段的起始地址:0001052c Bss段的结束地址:00010534 我们的hello变量的地址:00010530是落在bss段里的地址的。所以是存在bss段的。这就是未初始化的全局变量存放在bss段...

LAPACK(5)——矩阵广义特征值问题和QZ分解

广义特征值问题,即Ax=  Bx, 在Matlab中,使用eig()求解一般特征值问题和广义特征值。[V,D] = eig(A,B,flag), A和B时方阵,flag用来选择算法,'qz'表示选择使用QZ算法。 也可以直接调用qz()来求解,[AA,BB,Q,Z,V] = qz(A,B,flag), flag 表示使用复数或实数计算,默认取值为复数。 在...

批处理命令大全

  1.Echo 命令打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。语法echo [{on|off}] [message]Sample:echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特...

reuqest模块及UA反扒机制

requests模块 爬虫中一个基于网络请求的模块 pip install requests 作用:模拟浏览器发起请求 编码流程: 1 . 指定url 2 . 发起请求 3 . 获取响应数据(爬取到的页面源码数据) 4 . 进行持久化存储 简单例子: #指定爬取的url (以搜狗为例) url = "https://www.sogou.com"...

工具-效率工具-XMIND8破解(99.1.3)

@ 目录 1.下载 2.修改hosts文件 3.修改配置文件 4.填入序列号 5.破解完成 关于作者 1.下载 1.点击进入官方网站下载 2.下载破解包 网址:点击进入网盘地址 密码:domd 2.修改hosts文件 1.进入C:WindowsSystem32driversetc目录使用文本工具打开HOSTS文件 2.添加以下代码 0.0.0.0...