python屬于腳本語言,解釋型語言,在python環境中,直接運行py文件就可以看到結果,如果項目直接發布出去,那就是在“裸奔”。所以很有必要對項目代碼加密。
一、先睹為快,看看一個項目發布的時候,只有幾個文件,
main.py項目程序入口
setting.py項目配置
apps項目模塊
plusins項目插件目錄
項目發布目錄一覽
二、創建項目
創建項目pymodcreatedemo1
cddemo1
創建模塊pymodaddmod1
啟動pycharm開始編寫功能模塊
一個模塊默認由三個文件組成
__init__.py、handlers.py、param_schemas.py
業務邏輯主要在handlers.py中編寫
__init__.py
frompymod.blueprintimportBlueprintapi=Blueprint("/mod1")from.handlersimport*
param_schemas.py
schema_sfz={"type":"object","required":["sfz","nl"],"properties":{"sfz":{"type":"string","minLength":18,"maxLength":18,"description":"身份證明號碼"},"nl":{"type":"integer","minimum":0,"maximum":150,"description":"年齡"}}}
handlers.py
from.importapifrompymod.extimportRequestHandler,params_validate,TrueResponse,FalseResponsefrom.param_schemasimportschema_sfzfrompymod.pluginsimportsfz_check@api.add_route('/hello')classHello(RequestHandler):defget(self):self.write('HelloWorld')@params_validate(schema_sfz)defpost(self):sfz=self.get_json_arg("sfz")nl=self.get_json_arg("nl")#self.write(TrueResponse(sfz=sfz,nl=nl))ifsfz_check.check_sfzmhm(sfz):self.write(TrueResponse(hint="身份證明號碼驗證通過"))else:self.write(FalseResponse(hint="身份證明號碼驗證失敗"))
三、項目部署
程序調試修改setting.py
#開發模式下運行的模塊名稱必須填寫
modules=["mod1"]modules_config={"mod1":{"deny_ip":"","allow_ip":"*"}}
啟動程序pythonmain.py
調試沒有問題,進入發布模式
在項目目錄下
pymodpackmod1
在target目錄下生成mod1.mod文件,將其復制到apps目錄中
修改setting.py
#開發模式下運行的模塊名稱必須填寫
modules=[]
再次運行pythonmain.py測試
一切OK,系統就可以發布了。
pymod使用指南,訪問https://pymod.cn