如何分析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中所有非目录子模块打包
)
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.间接访问;
pip install webtest-0.0.2.zip #安装后pycharm左侧,工作目录webtest2和External Libraries/site-packages/webtest2会有冲突,但有搜索顺序;另,也可将工作目录webtest2直接复制到其它主机运行
看完上述内容,你们掌握如何分析web开发7中的模块化的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/204632.html