WEB应用服务基于HTTP协议/规范,实现静态资源和动态资源的请求与处理。
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应用服务的接口(规范),便于我们开发动态资源请求,提供的开发模块是wsgiref。此模块是所有其它高级框架中最核心的、最基本的规范,如Flask基于Werkzeug库实现了wsgi通信协议。WSGI:Web Sever Gataway Interface WEB服务网关接口、负责http协议的底层通信。 Python
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 """
用户登陆页面
"""
else:
# 获取表单数据
name = request.form.get('username')
password = request.form.get('password')
if all((
name == 'jasmine',
password == '12345'
)):
return """
登陆成功!
"""
else:
return """
登陆失败!
请重新登陆
"""
# 启动服务
app.run(host="localhost", port=5000)