1. route的定义:

  客户端发送请求给web服务器,web服务器再将请求发送给Flask程序实例
  程序实例需要知道每个url请求所对应的运行代码是谁。所以程序中必须要创建一个 url 请求地址 到 python运行函数的一个映射。处理url和函数之间的关系的程序就是"路由"

2.路由的体现
  在 Flask 中,路由是通过 @app.route 装饰器来表示的

  1.路由的基本表示

    # http://localhost:5000/admin/login
     @app.route('/admin/login')
     def admin_login():
     return 'xxx'

  2.指定参数类型的路由以及传参

    # http://localhost:5000/show/zengsf/23
    @app.route('/show/<name>/<int:age>')
    def show(name,age):
      //: name : 字符串
      //: age : 整数

    int: 类型转换器
   Flask 中所支持的类型转换器:
    类型转换器   作用
    缺省              字符串,不能有斜杠('/')
    int:                 整型
    float:             浮点型
    path:             字符串,可以有斜杠('/')

  3.多 URL 的路由匹配
    为多个访问地址匹配同一个视图处理函数
    @app.route('/地址1')
    @app.route('/地址2')
    ... ...
    def index():
    return ""

  4.路由中设置 HTTP 请求方法
    Flask路由也允许设置对应的请求方法(post/get),只有将匹配上请求方法的路径才能交给对应的视图处理函数取处理。所有的路由,默认只接受 get 请求
    @app.route('/xxx/xxx',methods=['POST'])
    def xxx:
      # 该函数只能接受post请求
    pass

    @app.route('/xxx/xxx',methods=['GET','POST'])
    def xxx:
      # 该函数既能接受get请求也能接受post请求
    pass

  5.URL的反向解析
    正向解析:程序自动解析,根据@app.route()中的访问路径,来匹配处理函数

    反向解析:通过视图处理函数的名称自动生成对应的访问路径

    在Flask中要实现反向解析的话需要使用 :
      url_for(funName,args)
      funName:要生成地址的函数名
      args:该地址中需要的参数

    函数:s = url_for(funName,arg1=value1,arg2=value2)

Flask中的route的更多相关文章

  1. FlASK中的endpoint问题

    先贴一点有关的flask代码,时间有限,我慢慢扩充 以下是flask源码中app.py中add_url_rule的代码. 主要是view_func  -- endpoint -- url 之间的对应关 ...

  2. Flask 中的 SQLAlchemy 使用教程

    Flask 是一个 python web micro framework.所谓微框架,主要是 flask 简洁与轻巧,自定义程度高.相比 django 更加轻量级. 之前一直折腾 django,得益于 ...

  3. Flask中endpoint的理解

    在flask框架中,我们经常会遇到endpoint这个东西,最开始也没法理解这个到底是做什么的.最近正好在研究Flask的源码,也就顺带了解了一下这个endpoint 首先,我们看一个例子: @app ...

  4. Flask中路由模块的实现

    在Flask中的路由功能主要通过修饰函数route实现,下面我们就来挖掘下route在源代码中是怎么分配视图函数的. def route(self, rule, **options): def dec ...

  5. Flask之基于route装饰器的路由系统(源码阅读解析)

    一 路由系统 1. 在flask中配置URL和视图函数的路由时,首先需要在main.py中实例化一个app对象: from flask import Flask, render_template ap ...

  6. Flask中使用数据库连接池 DBUtils ——(4)

    DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线程 ...

  7. 第七篇 Flask 中路由系统以及参数

    Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...

  8. 第六篇 flask中session

    Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪 Flask 中 session 的使用 1. Flask 中 session 是 ...

  9. 第四篇flask中模板语言 jinja2

    Flask中默认的模板语言是Jinja2 首先我们要在后端定义几个字符串,用于传递到前端 STUDENT = {, 'gender': '中'}, STUDENT_LIST = [ {, 'gende ...

随机推荐

  1. 基于js的CURD插件

    前言: 每个web程序对数据库的创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作都是必不可少的,于是我决定开发一个基于JavaScript和jQuery框 ...

  2. WebSphere部署应用教程

    在WebSphere中应用是部署在“应用程序服务器”,而“应用程序服务器”建立在“节点”上 所以部署应用的几个前提是:要创立好受控server(亦即节点)并加入到控制台中且处于启动(亦即同步)状态:要 ...

  3. learning at commad AT+CPSI

    [Purpose] Learning how to get mobile network info [Eevironment] Shell terminal, base on gcom command ...

  4. js 中class选择器,addClass,removeClass,hasClass,toggleClass,getByClass

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  5. Eclipse集成Tomcat插件(特别简单)

    . 只需要一个jar包 复制到eclipse/plugins文件夹下,重启Eclipse即可看到如下三只小猫 1.修改Tomcat (1)Tomcat version:版本 (2)Tomcat Hom ...

  6. tomcat 线程数与 mysql 连接数综合调优

    目前线上系统包含 数据收集+数据分析+中心服务,三个均为 tomcat,共用一个mysql服务. 由于tomcat最大线程数200 *3 =600,最大并发时,会有600个jdbc连接.当然这是极端情 ...

  7. python 爬虫之 selenium API

    一.浏览器操作 1.浏览器最大化 driver.maximize_window() #将浏览器最大化显示 2.设置浏览器宽.高 driver.set_window_size(480, 800)#设置浏 ...

  8. 堆排序,图解,C/C++实现

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  9. 《Python》进程收尾线程初识

    一.数据共享 from multiprocessing import Manager 把所有实现了数据共享的比较便捷的类都重新又封装了一遍,并且在原有的multiprocessing基础上增加了新的机 ...

  10. 【重大更新】DevExpress WinForms v18.2新版亮点(七)

    买 DevExpress Universal Subscription  免费赠 万元汉化资源包1套! 限量15套!先到先得,送完即止!立即抢购>> 行业领先的.NET界面控件2018年第 ...