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)

--反向解析示例


 

最新文章

  1. NBIbatis web/winform框架
  2. centos下安装mycat
  3. nodejs学习:sails框架的学习
  4. linux常用命令搜索
  5. 模板方法模式(Tempalte Method Pattern)
  6. 博主新建Linux学习交流群,欢迎广大大神入驻~
  7. Struts2【UI标签、数据回显、资源国际化】
  8. int和Integer有什么区别
  9. 【转】UniGUI Session管理說明
  10. sql 语句查询 sqlserver 数据库 MAC 地址
  11. Windows下安装pymssql
  12. Jenkins进阶-用户权限管理(10)
  13. 用分布式缓存提升ASP.NET Core性能
  14. C# 往线程里传参数的方法总结
  15. angular学习总结
  16. String的一些方法试探
  17. ABBYY FineReader Pro for Mac系统要求
  18. DBLookupComboBox 的初始值
  19. Tesseract-OCR-02-Tesseract-OCR 的安装与 环境变量配置
  20. mysql中对于时间的处理,时间的滚动,求时间间隔,切换时区等等

热门文章

  1. 123457123457#0#-----com.yuming.TruckCarRun01--前拼后广--大卡车游戏cym
  2. java中快速读写图片到BufferedImage对象
  3. 【产品】C转B
  4. iOS compile sources问题
  5. pycharm连接linux创建django工程
  6. 云计算和 AWS 概述(一)
  7. Flutter 流式布局列表实例+上拉加载
  8. VLOOKUP函数 from Excel
  9. 按css查询多个元素
  10. Spring 控制器层如何启用验证?