美文网首页
Python web开发简单流程------->wsgiref

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

作者: 城北有梦 | 来源:发表于2018-04-14 17:37 被阅读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只是一个参数,也可以用其他变量来代替

    相关文章

      网友评论

          本文标题:Python web开发简单流程------->wsgiref

          本文链接:https://www.haomeiwen.com/subject/gnvlkftx.html