如何分析web开发7中的模块化

如何分析web开发7中的模块化,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

支持json格式数据返回:

例:

有问题,web页面不是json格式;

def jsonify(**kwargs):

    content = json.dumps(kwargs)

    # response = Response()

    # response.content_type = "application/json"

    # response.body = '{}'.format(content).encode()

    # return response

    return Response(body=content, status='200 OK', content_type='application/json', charset='utf-8')

@py.register_postinterceptor

def showjson(ctx, request, response):

    body = response.body.decode()

    return jsonify(body=body)

模块化:

1、熟悉wsgi的编程接口;

2、强化模块化、类封装的思想;

3、增强分析业务的能力;

另,权限验证、SQL注入检测功能使用拦截器过滤;

VER1:

New–>Python Package,webtest,将代码放到__init__.py文件中,更改Application类为WebTest类;

import webtest

webtest.   #这样调整后用此种方式,很多东西都对外了;

VER2:

webtest/{web.py, __init__.py};

1、将WebTest类之后的代码放到__init__.py中;

2、在WebTest类中,添加:

class WebTest:

    Router = _Router   #用类属性方式,把类暴露出去,很多基础类这样实现

    Request = Request

    Response = Response

from webtest import WebTest

WebTest.   #用此种方式,可访问web.py中的_Router类、Reqeust类、Response类

发布:

例:

from distutils.core import setup

setup(name='webtest',

      version='0.0.1',

      description='wsgiref web test',

      author='jowin',

      author_email='jowin@163.com',

      url='https://blog.51cto.com/jowin',

      packages=['webtest']   #打包列表,指定'webtest'会把webtest中所有非目录子模块打包

)

如何分析web开发7中的模块化

如何分析web开发7中的模块化

pip install webtest-0.0.1.zip   #放到其它主机上安装

VER3:

1、新建python package,webtest2/{web.py,__init__.py};

2、将所有代码放到web.py中;

2、仅在__init__.py中写:

from .web import Application   #包内自己的东西用相对路径,webtest2这个包对外暴露出只有Application,包替你封装起来,通过Application.间接访问;

如何分析web开发7中的模块化

如何分析web开发7中的模块化

如何分析web开发7中的模块化

如何分析web开发7中的模块化

pip install webtest-0.0.2.zip   #安装后pycharm左侧,工作目录webtest2和External Libraries/site-packages/webtest2会有冲突,但有搜索顺序;另,也可将工作目录webtest2直接复制到其它主机运行

看完上述内容,你们掌握如何分析web开发7中的模块化的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/204632.html

(0)
上一篇 2021年11月29日
下一篇 2021年11月29日

相关推荐

发表回复

登录后才能评论