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

               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只是一个参数,也可以用其他变量来代替

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,212评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,056评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,648评论 18 399
  • 我站在一个分叉口,背后有一条路,那是来时的路。我的脚下分离出好几条道路通向远方。 眼前的路被一片浓雾掩盖,我看不清...
    潇然灬阅读 1,517评论 1 1
  • 他们,是一群“骗子” 通过伪装,潜伏在失忆老人的身边 他们是收银员 看着老人过来购物 无论买多买少 从不要求他们付...
    珠海24小时阅读 1,886评论 1 0

友情链接更多精彩内容