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 反向解析示例的更多相关文章

  1. Flask框架(二)—— 反向解析、配置信息、路由系统、模板、请求响应、闪现、session

    Flask框架(二)—— 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 目录 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 一.反向解析 1.什么是反向解析 ...

  2. Django3 Django 路由分发,反向解析,2.0版本的path

    urls配置像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行. 1.简 ...

  3. Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式

    Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...

  4. Django--路由控制 ——URL反向解析

    Django--路由控制 本文目录 一 Django中路由的作用 二 简单的路由配置 三 有名分组 四 路由分发 五 反向解析 六 名称空间 七 django2.0版的path 回到目录 一 Djan ...

  5. django系列3.2--url的别名和反向解析 reverse

    命名URL和反向解析 在网页中某些要提交的地址等,需要改变的时候,此时网页过多,如果一个一个的去改,工作量巨大,这时就可以用到命名url,在html文件的模版中,只写命名,这样当需要我们改变urls. ...

  6. Linux的DNS反向解析部署

    下面的部署是在Linux的DNS正向解析示例上进行修改的. 如果有什么问题或者错误,可以访问上篇帖子 下面开始有关DNS的服务部署.<DNS反向解析> 工具:虚拟机 centos7 配置: ...

  7. Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间

    Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间 一丶URLconf配置 ...

  8. Django基础之命名URL和URL反向解析

    在使用Django项目时,一个常见的需求是获得URL的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等). 人们强烈希望不要硬编码这些URL(费力 ...

  9. Django路由系统-URL命名&URL反向解析

    命名URL和URL反向解析 前言 起始样式,HTML中的href是写死的,不能更改,如下示例代码: # urls中 urlpatterns = [ url(r'^admin/', admin.site ...

随机推荐

  1. PAT 甲级 1034 Head of a Gang (30 分)(bfs,map,强连通)

    1034 Head of a Gang (30 分)   One way that the police finds the head of a gang is to check people's p ...

  2. LeetCode_67. Add Binary

    67. Add Binary Easy Given two binary strings, return their sum (also a binary string). The input str ...

  3. (九)UML之活动图

    一.概念 二. 在Rational rose 中画活动图 2.1 创建Activity Diagram 2.2 画图

  4. html页面设置自动刷新

    在中添加如下: <meta HTTP-EQUIV="REFRESH" CONTENT="1"> 其中CONTENT对应刷新的间隔时间,这里为1秒. ...

  5. Tinymce在ASP.NET中的使用方法

    现在做网页,用FCKEditor用得比较多,它的实现原理是在要加入FCKEditor的地方加入一个iframe,并将其src指向FCKeditor/editor/fckeditor.html?Inst ...

  6. macpro锁屏后没有进入睡眠

    使用命令pmset -g查看,如图,钉钉阻止了屏幕的睡眠,找了下钉钉的配置,也没有发现有关的内容,重启钉钉后问题解决 displaysleep 10 (display sleep prevented ...

  7. AWS 核心服务概述(二)

    目录 AWS网络服务 VPC Direct Connect Route53 AWS 计算服务 EC2 EMR(Elastic MapReduce) AWS Lambda Auto Scaling El ...

  8. charles 高级批量请求

    本文参考:charles 高级批量请求 这个我感觉有点鸡肋,真正的批量请求,推荐使用JMter charles 高级批量请求就是下面这种简单的设置的 简单的使用还是可以的; 比如简单的测试下,向某一个 ...

  9. Egret入门学习日记 --- 第十二篇(书中 5.1节 内容)

    第十二篇(书中 5.1节 内容) 昨天把 第4章完成了. 今天来看第5章. 接下来是 5.1节 的内容. 总结一下 5.1节 的重点: 1.如何制作一个公用按钮皮肤. 跟着做: 重点1:如何制作一个公 ...

  10. Hanoi II——汉诺塔步数求解进阶问题

    在NOJ上遇到关于汉诺塔步数的求解问题 开始读时一脸懵逼,甚至不知道输入的数据是什么意思 题目描述:给出汉诺塔的两个状态,从初始状态移动到目的状态所需要的最少步数 对于初级汉诺塔步数问题,我们可以直接 ...