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)