Python web开发简单流程------->wsgiref

2018-04-14  本文已影响0人  城北有梦

               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()

总结:env   response只是一个参数,也可以用其他变量来代替

上一篇下一篇

猜你喜欢

热点阅读