1.静态网页 和 动态网页
1.静态网页 :无法与服务器做动态交互的网页
2.动态网页 :允许与服务器做动态加护的
2.WEB 与 服务器
1.WEB : 网页(HTML,CSS,JS)
2.服务器
能够给用户提供服务的机器就可以称为 服务器
1.硬件 与 软件
硬件 :一台主机
软件 :一个能够接受用户请求并给出响应的程序
1.APACHE
2.TOMCAT
3.IIS(Internet Information Service)
4.Nginx
2.作用
1.存储WEB上的信息
2.能够处理用户的请求(request)并给出响应(response)
3.执行服务器端程序
4.具备一定的安全功能
3.框架
1.什么是框架
框架是一个为了解决开放性问题而存在一种程序结构。
框架本身提供了一些最基本的功能。
我们只需要在基础功能上搭建自己的操作就可以了。
2.Python Web 框架
1.Flask - 轻量级
2.Webpy - 轻量级
3.Tornado - 异步框架
4.Django - 重量级框架
3.框架模式
1.MTV
M :Models,模型层,主要负责数据库建模、
T :Templates,模板层,用于处理用户的显示内容,如 html
V :Views,视图,处理与用户打交道的内容(请求和响应)
2.MVC
M :Models,模型层,主要负责数据库建模
V :Views,视图,处理用户的显示内容
C :Controller,控制器,用于与用户交互的部分内容(请求和响应)
M --- M
T --- V
V --- C
4.Flask框架
1.什么是Flask框架
Flask是一个基于Python并且依赖于Jinja2模板引擎和Werkzeug WSGI服务的一个微型框架
WSGI :Web Server Gateway Interface(WEB服务网关接口)
Flask是采用 MTV 的框架模式
2.安装 Flask
1.查看已安装的Flask版本
在 python 的交互模式中 :
1. import flask
没报错:已经安装了Flask,可以继续查看版本
报错:没安装Flask
2. flask.__version__
已安装Flask的情况下,可以查看安装的版本
2.安装Flask
sudo pip3 install flask
pip3 download flask
3.Flask 初始化
5.Flask - 路由(route)
1.什么是路由
客户端发送请求给web服务器,web服务器再将请求发送给Flask程序实例
程序实例需要知道每个url请求所对应的运行代码是谁。所以程序中必须要创建一个 url 请求地址 到 python运行函数的一个映射。处理url和函数之间的关系的程序就是"路由"
2.路由的体现
在 Flask 中,路由是通过 @app.route 装饰器来表示的
1.路由的基本表示
# http://localhost:5000
@app.route('/')
def index():
return "xxx"
# http://localhost:5000/admin/login
@app.route('/admin/login')
def admin_login():
return 'xxx'
2.带参数的路由
路由中可以携带参数表示不同的数据
http://localhost:5000/show/laowang
http://localhost:5000/show/wangwc
http://localhost:5000/show/laowang.gebi
1.基本带参路由
@app.route('/show/<name>')
def show(name):
name : 表示的就是从地址栏上传递过来的数据
return 'xxx'
2.带多个参数的路由
http://localhost:5000/show/laowang/36
@app.route('/show/<name>/<age>')
def show(name,age):
return 'xxx'
3.指定参数类型的路由
@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:该地址中需要的参数
想要看更多的课程请微信关注SkrEric的编程课堂