zoukankan      html  css  js  c++  java
  • WSGI

    1.静态资源和动态资源

    静态资源可以理解为前端的固定页面,这里面包含HTMLCSSJS、图片等等,不需要查数据库也不需要程序处理,直接就能够显示的页面,如果想修改内容则必须修改页面,但是访问效率相当高。

    动态资源,需要程序处理或者从数据库中读数据,能够根据不同的条件在页面显示不同的数据,内容更新不需要修改页面但是访问速度不及静态页面。

    2.什么是WSGI协议

    Web服务器网关接口,Web Server Gateway Interface (或简称 WSGI,读作“wizgy)

    是一种协议、一种规定,遵守WSGI协议能够让web服务器和框架之间解耦,可以混合搭配服务器和框架,互相兼容。

    3.如何定义WSGI接口

    在框架实现一个application函数(相当于框架的一个唯一入口),此函数要有两个参数,第一个是字典参数,第二个参数是服务器端一个函数的引用,用来处理header头。

    下面是一个最通俗的例子:

    def application(environ, start_response):
    
        start_response('200 OK', [('Content-Type', 'text/html')])
    
        return 'Hello World!'

    上面的application()函数就是符合WSGI标准的一个HTTP处理函数,它接收两个参数:

    • environ:一个包含所有HTTP请求信息的dict对象;
    • start_response:一个发送HTTP响应的函数。

    这个application()函数是由服务器来调用服务器上要实现start_response()函数用来设置头信息。

    4.sys.argv的使用

    作用:返回当前文件本身的名字及给定文件的参数.

    import sys

    print(sys.argv)

    当你在运行这个文件的时候会返回一个列表,里面包含了当前文件名以及后续的参数

    譬如:python3 test.py 7890 a b c

    此时打印结果为: ['test.py', '7890', 'a', 'b', 'c']

    5.导入模块是变量名时如何导入

    当模块名是变量名的时候就不能直接import的方式导入了,因为会把变量名当成模块名去找。

    此时可以使用原生的__import__()函数去导入模块,它支持传递一个字符串,也可以是一个变量名(字符串类型)。

    getattr(object, name[, default]) 这是一个Python内置函数,作用是从对象中读取出来属性或者方法当成一个变量来处理。

    frame_name = ‘mini_frame’
    
    app_name = ‘application’
    
    frame = __import__(frame_name)  # 此时相当于导入了mini_frame模块
    
    app = getattr(frame, app_name)  # 此时app就指向了mini_frame模块中的application这个函数
  • 相关阅读:
    R-时空可视化
    zz温故知新:Tomcat调优&JVM内存性能调优
    《CarbonData》
    《RocketMQ》
    《LinuxTools》
    《为什么说 Prometheus 是足以取代 Zabbix 的监控神器?》
    《Zabbix》
    zz《百度地图商业选址》
    《Dapper》
    BZOJ 1601: [Usaco2008 Oct]灌水 最小生成树_超级源点
  • 原文地址:https://www.cnblogs.com/itBlogToYpl/p/10765414.html
Copyright © 2011-2022 走看看