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
相关文章
|
6天前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
96 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
3月前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
2月前
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
打造高效的Web Scraper:Python与Selenium的完美结合
|
1月前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
1月前
|
机器学习/深度学习 开发框架 API
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。
|
3月前
|
人工智能 开发者 Python
Chainlit:一个开源的异步Python框架,快速构建生产级对话式 AI 应用
Chainlit 是一个开源的异步 Python 框架,帮助开发者在几分钟内构建可扩展的对话式 AI 或代理应用,支持多种工具和服务集成。
348 9
|
3月前
|
JSON 安全 中间件
Python Web 框架 FastAPI
FastAPI 是一个现代的 Python Web 框架,专为快速构建 API 和在线应用而设计。它凭借速度、简单性和开发人员友好的特性迅速走红。FastAPI 支持自动文档生成、类型提示、数据验证、异步操作和依赖注入等功能,极大提升了开发效率并减少了错误。安装简单,使用 pip 安装 FastAPI 和 uvicorn 即可开始开发。其优点包括高性能、自动数据验证和身份验证支持,但也存在学习曲线和社区资源相对较少的缺点。
223 15
|
3月前
|
关系型数据库 API 数据库
Python流行orm框架对比
Python中有多个流行的ORM框架,如SQLAlchemy、Django ORM、Peewee、Tortoise ORM、Pony ORM、SQLModel和GINO。每个框架各有特点,适用于不同的项目需求。SQLAlchemy功能强大且灵活,适合复杂项目;Django ORM与Django框架无缝集成,易用性强;Peewee轻量级且简单,适合小型项目;Tortoise ORM专为异步框架设计;Pony ORM查询语法直观;SQLModel结合Pydantic,适合FastAPI;GINO则适合异步环境开发。初学者推荐使用Django ORM或Peewee,因其易学易用。
263 4
|
3月前
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
239 7
|
4月前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
220 7

热门文章

最新文章