python web框架基础

简介: python web框架基础

文章目录


1. Web框架简介

1.1 MVC

1.2 模板引擎

2. 常用 Python Web 框架

3. 虚拟环境

4. 部署方式

learning from 《python web开发从入门到精通》


1. Web框架简介


简化 web 开发的软件框架


一般都支持:管理路由,支持数据库,MVC,ORM,模板引擎,管理会话和Cookies


1.1 MVC


Model View Controller 一种设计模式

Model 封装数据和处理方法

View 是数据的 HTML 展现

Controller 负责响应请求,协调 Model 和 View


1.2 模板引擎


使用模板引擎可以在 HTML 页面中使用变量 如 <title>{{title}}</title>


{{}} 变量会被替换成相应的值,使得界面与数据分离,业务代码与逻辑代码分离,提高复用和开发效率


2. 常用 Python Web 框架


只要遵守 WSGI(服务器网管接口) 规则,就可以自主开发 Web 框架


Django 最广泛,社区最大,最多的包,但是系统耦合度高,替换内置功能麻烦,学习曲线陡峭

Flask 轻量级,容易扩展

Tornado 不单单是框架,还是 web 服务器,为了解决实时服务诞生的(使用了异步非阻塞IO),运行速度非常快

FastAPI 现代的高性能框架,使用了类型提示,能减少开发错误,自动生成 API 文档


3. 虚拟环境


不同的应用程序使用不同的环境依赖,避免升级后不兼容


virtualenv

conda

pip 导出环境包的明细 pip freeze > requirements.txt

新环境下一次性安装 pip install -r requirements.txt

pip 加速:-i 清华源地址 或者 配置 pip.ini 文件,添加源地址,自行网上搜索


4. 部署方式


WSGI


接受请求的服务器 + 处理请求的 APP

Gunicorn


常用的 WSGI Server 容器 有 Gunicorn ,uWSGI,Gunicorn 简单,占用资源少,更快

Nginx


是一个 web 服务器,反向代理工具,通常来部署静态文件

可以直接处理静态文件请求,绕过APP服务器,避免占用运算资源,能缓存静态资源,提速

抗并发能力,缓存住瞬时高并发请求,然后慢慢在后端处理

多台服务器,可以提供负载均衡和反向代理

Supervisor


进程管理工具,看守进程,异常退出后,立即启动进程

image.png

pip install gunicorn
gunicorn -w 3 -b 0.0.0.0:9100 run:app
w进程数,b绑定主机和端口,run是 run.py 文件,app 是py文件里的定义应用

也可以 -c 指定配置文件 如 xxxconf.py

image.png

使用云服务器玩一玩:

创建虚拟环境

编写 run_flask_hello_world.py

from flask import Flask
app=Flask(__name__)
@app.route('/')
def index():
    return "hello michael!"
if __name__ == "__main__":
    app.run()
gunicorn -w 1 -b 0.0.0.0:9100 run_flask_hello_world:app
[2021-12-03 12:05:05 +0800] [23677] [INFO] Starting gunicorn 20.1.0
[2021-12-03 12:05:05 +0800] [23677] [INFO] Listening at: http://0.0.0.0:9100 (23677)
[2021-12-03 12:05:05 +0800] [23677] [INFO] Using worker: sync
[2021-12-03 12:05:05 +0800] [23679] [INFO] Booting worker with pid: 23679
相关文章
|
8月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
629 0
|
8月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
694 1
|
8月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
728 0
|
8月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
407 0
|
11月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
303 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
11月前
|
JSON 监控 BI
拼多多批量下单工具,拼多多买家批量下单软件,低价下单python框架分享
使用Selenium实现自动化操作流程多线程订单处理提升效率
|
11月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
8月前
|
开发框架 前端开发 Go
【GoGin】(0)基于Go的WEB开发框架,GO Gin是什么?怎么启动?本文给你答案
Gin:Go语言编写的Web框架,以更好的性能实现类似Martini框架的APInet/http、Beego:开源的高性能Go语言Web框架、Iris:最快的Go语言Web框架,完备的MVC支持。
674 1
|
9月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
262 1
|
9月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
409 0

推荐镜像

更多