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
相关文章
|
28天前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
28天前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
33 4
|
28天前
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
|
4天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
21 7
|
1天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
14 2
|
17天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
26天前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
26天前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
35 2
|
26天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
34 1
|
27天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
下一篇
DataWorks