flask 反向解析示例
1 静态网页 和动态网页
1 静态网页:无法与服务器做动态交互的网页
2 动态网页:允许与服务器做动态加护的
2 WEB 与 服务器
1 WEB :网页(HTML,css,JS)
3 服务器的作用:
1 存储WEB上的信息
2 能够处理用户的请求(request)并给出响应(response)
3 执行服务器端程序
4 具备一定的安全功能
框架
1 什么是框架
框架是一个为了解决开放性问题而存在一种程序结构
框架本身提供了一些最基本的功能
我们只需要在基础功能上抢建自己的操作就可以了
2 python web 框架
1 flask - 轻量
2 webpy - 轻量级
3 Tornado - 异步框架
4 django - 重量级框架
3 框架模式
1 MTV
M : Models ,模型层,主要负责数据库建模
T : T ,用于处理用户的显示内容,如 html
V : Views,视图,处理与用户打交道的内容
2 MVC
M: 模型层,主要负责数据库建模
V: 视图,处理用户的显示内容
C: Controller,控制器,用于与用户交互的部分内容(请求和响应)
4 Flask框架
1 什么是Flask框架
Flask是一个基于python并且依赖于Jinja2 模板引擎和Weryzeug WSGI服务的一个微型框架
WSGI : Web Server Gatway Interface(WEB服务网关接口)
Flask 是采用MTV的框架模式
5 Flask- 路由(route)
1 什么是路由
客户端发送请求给web服务器,web 服务器再将请求发送给Flask程序实例
程序实例需要知道每个url 请求所对应的运行代码是谁。所以程序中必须要创建一个url 请求地址 到 python 运行函数的一个映射。处理url
和函数之间的关系的程序就是“路由”
2 路由的体现
在 Flask 中,路由是通过 @app.route 装饰器来表示的
1 路由的基本表示
2 带参数的路由
路由中可以携带参数表示不同的数据
1 基本代参路由
@aap.route('./show/<name>')
def show(name):
name:表示的就是从地址栏上传递过来的数据
return 'xxx'
2 带多个参数的路由
@app.show('/show/<name>/<age>')
3 指定参数类型的路由
@app.route('/show/<name>/<int:age>') int:类型转换器
Flask 中所支持的类型转换器:
类型转换器 作用
缺省 字符串,不能有斜杠('/')
int: 整型
float: 浮点型
path: 字符串,可以有斜杠('')
3 为多个访问地址匹配同一个视图处理函数
@app.route('/地址1')
@app.route('/地址2')
...
def index()
return ''
4 路由中设置 HTTP请求方法
Flask路由也允许设置对应的请求方法(post/get),只有将匹配上请求方法的路径才能交给对应的视图处理函数,
所有的路由,默认只接受 get 请求 @app.route('/xxx/xx',methods=['GET','POST'])
def xxx:
#该函数即能接受get 请求也能接受post请求
pass
5 URL 的反向解析
正向解析:程序自动解析,根据@app.route()中的访问路径,来匹配处理函数 反向解析:通过视图处理函数的名称自动生成对应的访问路径 在Flask中要实现反向解析的话需要使用:
url_for(funName,args)
funName:要生成地址的函数名
args:该地址中需要的参数
# python 3.7
from flask import Flask, url_for app = Flask(__name__)
print(app,'这里是app') @app.route('/index')
def index():
return '<h1>这里是首页</h1>' @app.route('/admin/login/form/show/<name>')
def show(name):
return '参数值为:%s'%name @app.route('/url')
def url():
# 通过index()解析出对应的访问路径,,此处开始进行反向解析
url_index= url_for('index')
url_show= url_for('show',name='liu')
print(url_show)
return '<a href="%s">wee</a>'%url_show if __name__ == '__main__':
app.run(debug=True)
--反向解析示例
flask 反向解析示例的更多相关文章
- Flask框架(二)—— 反向解析、配置信息、路由系统、模板、请求响应、闪现、session
Flask框架(二)—— 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 目录 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 一.反向解析 1.什么是反向解析 ...
- Django3 Django 路由分发,反向解析,2.0版本的path
urls配置像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行. 1.简 ...
- Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...
- Django--路由控制 ——URL反向解析
Django--路由控制 本文目录 一 Django中路由的作用 二 简单的路由配置 三 有名分组 四 路由分发 五 反向解析 六 名称空间 七 django2.0版的path 回到目录 一 Djan ...
- django系列3.2--url的别名和反向解析 reverse
命名URL和反向解析 在网页中某些要提交的地址等,需要改变的时候,此时网页过多,如果一个一个的去改,工作量巨大,这时就可以用到命名url,在html文件的模版中,只写命名,这样当需要我们改变urls. ...
- Linux的DNS反向解析部署
下面的部署是在Linux的DNS正向解析示例上进行修改的. 如果有什么问题或者错误,可以访问上篇帖子 下面开始有关DNS的服务部署.<DNS反向解析> 工具:虚拟机 centos7 配置: ...
- Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间
Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间 一丶URLconf配置 ...
- Django基础之命名URL和URL反向解析
在使用Django项目时,一个常见的需求是获得URL的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等). 人们强烈希望不要硬编码这些URL(费力 ...
- Django路由系统-URL命名&URL反向解析
命名URL和URL反向解析 前言 起始样式,HTML中的href是写死的,不能更改,如下示例代码: # urls中 urlpatterns = [ url(r'^admin/', admin.site ...
随机推荐
- JAVA8 JVM内存结构变了,永久代到元空间
在文章<JVM之内存结构详解>中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化.作为面试官如果你还不知道,那么面试过程中是不是有些露怯? ...
- ALV显示金额字段值扩大100倍
内表数据 物料 库位 期末庫存金額F0D7004DSA 1PYF 701410.944F0D7004DSA 1SNT ...
- Mac更新npm和node版本
npm: 查看当前版本: npm --version 更新到最新版: sodu npm install npm@latest -g node: 1.查看当前版本: node -v 2.清除npm当前缓 ...
- Java如何获取ResultSet结果中的每一列的数据类型
示例代码片段: ResultSet resultSet = statement.executeQuery(sql); ResultSetMetaData metaData = resultSet.ge ...
- 【opencv】split
opencv-split Divides a multi-channel array into several single-channel arrays. code ,,,,,,,,,,,}; Ma ...
- C#使用Castle实现AOP面向切面编程
Castle.Core 本质是创建继承原来类的代理类,重写虚方法实现AOP功能.个人觉得比Autofac用着爽 使用方式比较简单,先新建一个控制台项目,然后在Nuget上搜索Castle.Core并安 ...
- 初始mysql
数据库操作 查看当前登陆用户: select user(); 登录数据库 mysql -u用户名 -p密码 -h 连接地址 修改当前用用户密码 set password = password('123 ...
- 基于springJDBC手写ORM框架
一.添加MySQLjar包依赖 二.结构 三.文件内容 (一).bean包 1.ColumnInfo.java 2.javaFiledInfo.java 3.TableInfo.java 4.Conf ...
- 日常工作问题解决:使用vmvare克隆centos6虚拟机造成无eth0的解决办法
目录 一.问题描述 样本虚拟机配置有两张网卡,eth0.eth1,使用vmvare克隆虚拟机后,复制的虚拟机,没有网卡eth0,eth1,而是有eth2.eth3,如下所示: 二.原因分析 复制系统中 ...
- SQL SERVER 实现多行转多列
有这样一个需求,一个表单主表,一个扩展列表,查询的时候要把扩展列表中的多行转成主表多列. 比如 dt_zhubiao [主表] id type title 1 1 表单1-1 2 1 表单1-2 3 ...