大家好,本文将围绕python web框架主要的三大基本框架展开说明,pythonweb开发框架第三方库是一个很多人都想弄明白的事情,想搞清楚python web开发框架有哪些需要先了解以下几个事情。
Source code download: 本文相关源码
一、WEB应用服务的认知
WEB应用服务基于HTTP协议/规范,实现静态资源和动态资源的请求与处理。
- 静态资源包括:html网页、图片、样式、java脚本、视频、音频等等python turtle库函数。
- 动态资源包括:通过程序(java/php/python/.net)和数据库(mysql/oracle/sqlsever),根据业务处理流程会动态地生成html,现将html响应给请求(客户端)
HTTP(1.0、1.1、2.0)和HTML的关系:
-
客户端封闭HTTP请求(HttpRequest),向服务端发起请求
-
服务端接收请求之后,分析资源请求的路径、请求参数(查询参数、表单参数、json/字节流)
-
服务端根据资源的请求路径读取文件的内容,并生成字节码数据且封装响应对象(HttpResponse)
-
客户端接收服务端的响应数据(HttpResponse),判断请求是否成功,如果成功则显示数据(html/json)
WEB应用服务:
1、客户端(Browser浏览器)发出请求(HttpRequest)
2、服务端(Apache/Nginx/PythonWeb)接收请求,根据请求的资源信息,读取文件,并封装到响应对象(HttpResponse)中
3、客户端接收资源,分析资源类型然后渲染并显示出来
另外,WEB应用服务基本HTTP协议,HTTP协议又于TCP/IP协议,因此是安全性连接。
二、Python Web开发框架
Python本身实现WEB应用服务的接口(规范),便于我们开发动态资源请求,提供的开发模块是wsgiref。此模块是所有其它高级框架中最核心的、最基本的规范,如Flask基于Werkzeug库实现了wsgi通信协议。WSGI:Web Sever Gataway Interface WEB服务网关接口、负责http协议的底层通信。 Python
Python WEB开发框架:
- Django(组件最全、最强大的框架,主要用于后端服务管理、运维),例如:做后台
- Flask(小巧的、灵活的框架、可以快速开发API接口),例如:做网站
- Tornado(基于协程和单线程单进程的框架实现非阻塞的网络框架),例如:在线客服
Flask框架的应用
from flask import Flask
"""
1、创建Flask的服务对象
2、声明请求资源(动态)
3、使用request请求对象(GET),获得请求方法(POST)
4、返回HTML
"""
app = Flask('Hi,Flask!')
@app.route('/hi', methods=['GET', 'POST'])
def hi():
from flask import request
if request.method == 'GET':
return """
<h1>用户登陆页面</h1>
<form action="/hi" method="post">
<input name="username" placeholder="用户名" /><br>
<input name="password" type="password" placeholder="密码" /><br>
<button>提交</button>
</form>
"""
else:
# 获取表单数据
name = request.form.get('username')
password = request.form.get('password')
if all((
name == 'jasmine',
password == '12345'
)):
return """
<h2 style="color:blue;">登陆成功!</h2>
"""
else:
return """
<h2 style="color:orange;">登陆失败!
<a href="/hi">请重新登陆</a></h2>
"""
# 启动服务
app.run(host="localhost", port=5000)