框架
框架分为重量级框架,轻量级框架,
框架的核心:只提供路由和视图
重量级框架:Django
额外的功能:模型类,管理后台
优点:开发速度快,便于开发像官网这样的网站速度
缺点:业务复杂,需求变化快。
轻量级框架:Flask
通过扩展来实现Django功能
优点:可以根据开发者的能力,提高开发者能力
缺点:开发速度可能没有Django快
Jinja2 模块引擎和werkzeug WSGI 工具集 管视图
IP 标记网络设备
端口:标记进程
DNS的作用: 把域名解析成IP,
浏览器–DNS解析–TCP三次握手
wsgi:web服务器和框架的桥梁一样
uwsgi: web服务器和框架之间数据协议
uWSGI:实现了uwsgi协议的web服务器
一个视图可以对应多个路由
重定向用redirect和url_for 注意写的是视图名字
如果想支持请求方式请加methods
安装Flask
pip install falsk
配置参数
__name__表示以当前文件目录为Flask的家目录
static_folder 指定静态目录
#template_folder 指定模板目录
static_url_path 隐藏真实路径
DEBUG配置方式
用类的方式:
class Config(object):
DEBUG= True
app.config.from_object(Config)
从文件读取
app.config.from_pyfile('config.cfg')
创建config.cfg 文件 写入 DEBUG = True
直接操作
app.config['DEBUG'] = True
对象上配置
app.debug = True
参数传入配置
app.run(debug=True) # 运行程序
取配置参数有两种方法:
需要导入
from flask import Flask,current_app
如果能拿到app对象,就可以通过app取自定义的配置参数
print(app.config.get('test'))
如果拿不到,可以通过current_app这个app的代理人拿到
print(current_app.config.get('TEST'))
支持外部访问
我们修改调用 run() 的方法使我们的服务器公开可用,如下
# 0.0.0.0代表任何能代表这台机器的地址都可以访问
app.run(host='0.0.0.0', port=5000) # 运行程序
这个时候我们可以通过http://127.0.0.1:5000/可以访问我们的网站,
也可以通过自己的本机ip去访问http://192.168.1.101:5000/。
可以通过ifconfig命令查看自己的本机IP
路由
说到路由,其实就是我们在浏览器输入地址后,后台进行匹配,如果匹配上,则执行此视图函数并返回内容。我们经过前面的例子也看出来Flask是用一个叫route()的装饰器进行装饰到视图函数上。
匹配的内容是去掉域名和端口后面地址,
比如: http://127.0.0.1:8000/index 这个地址,去掉域名和端口后就剩下/index这部分内容,所有我们只要装饰/index就可以了。
重定向
重定向需要导入以下模块:
from flask import redirect,url_for
redirect 函数用于重定向
url_for 参数是视图函数函数的名字,他会根据视图函数的名字找到装饰次视图的路由
请求方式
GET 获取资源
POST 新增资源
PUSH 更新资源
DELETE 删除资源
OPTIONS 询问支持的方法
课后自学
http协议
HTTPS
经典类和新式类
nginx:
负载均衡
正向代理和反向代理
动静分离
七层协议 五层协议
HTTP和HTTPS的区别
信息通信采用http是不安全的,存在信息劫持、篡改的风险,https是加密传输,是安全的通信,对于https加密的过程,我们首先介绍的对称加密,采用对称加密进行通信存在秘钥协商过程的不安全性,因此我们采用了非对称加密算法解决了对协商过程的加密,因此https是集对称加密和非对称加密为一体的加密过程
HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法,但是协商对称加密算法的过程,需要使用非对称加密算法来保证安全,然而直接使用非对称加密的过程本身也不安全,会有中间人篡改公钥的可能性,所以客户端与服务器不直接使用公钥,而是使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。这样通过这些机制协商出一个对称加密算法,就此双方使用该算法进行加密解密。从而解决了客户端与服务器端之间的通信安全问题。