Python web开发简单流程------->wsgiref
一,基础入门:
from wsgiref.simple_server import make_server #引入wsgire模块中的服务器,用作web服务器
def application(env, response): # 定义web接口函数''' 定义了一个web接口函数,可以接受浏览器客户端发送的url地址,调用执行函数 通过url地址调用执行函数
:param env: 环境,表示浏览器发送的请求环境
:param response: 响应:表示服务器给浏览器客户端 返回数据【响应数据】
response('200 OK', [('Content-type', 'text/html;charset=utf-8')]) # 定义响应内容的格式[返回数据的格式]
# 定义返回的数据 msg =‘你好’
# 返回数据【列表~表示可以返回很多数据——返回二进制数据[字节数据]】
# 扩展;字符->字节encode 字节->字符decode
return [msg.encode('utf-8')]
if __name__ == "__main__":
http_server = make_server('', 8000, application) # 将接口函数(web项目)部署到服务器
# 参数1:web服务器部署的ip地址;空字符串表示本机地址 # 参数2:服务器部署的端口号 # 参数3:服务器中部署的web项目[网关接口函数]
print('server is starting...')
http_server.serve_forever() # 启动服务器
最后启动 python 文件名.py runserver
总结:客户端通过url,找到web服务器中的项目,然后服务器调用接口函数,得到数据
二,网页视图:
from wsgiref.simple_server import make_server
def application(env, response):
response('200 OK', [('Content-type', 'text/html;charset=utf-8')])
# 读取网页数据
# with open('index.html', 'rb') as f:
# msg = f.read()
f = open('index.html', 'rb') #(需要打开的网页名称)
msg = f.read()
f.close()
# 返回数据
return [msg]
# 部署项目
if __name__ == "__main__":
# 部署项目
http_server = make_server('', 8000, application)
print('server启动了...')
# 启动项目
http_server.serve_forever()
三,网页视图高级处理:
from wsgiref.simple_server import make_server
import views #导入处理函数模块(自定义的)
def application(env, resp):
# 定义响应头
resp('200 OK', [('Content-type', 'text/html;charset=utf-8')])
# 判断用户的请求,跳转不同的网页
path = env['PATH_INFO'] #根据PATH_INFO来判断用户要跳转到哪个页面
if path == '/login': 例如:
return views.login(env, resp)
elif path == '/register':
return views.register(env, resp)
# 读取网页数据
with open('index.html', 'rb') as f:
data = f.read()
# 模拟从数据库读取了一个数据
name = '老王'
# 替换数据
data = str(data, 'utf-8').replace('{{name}}', name)
# 返回数据
return [data.encode('utf-8')]
# 启动入口
if __name__ == "__main__":
http = make_server('', 9000, application)
print('服务器启动了...等待客户端连接中...')
http.serve_forever()