flaskwebdevelopment——大型应用程序结构

flaskwebdevelopment——大型应用程序结构

ID:30776638

大小:61.00 KB

页数:10页

时间:2019-01-03

flaskwebdevelopment——大型应用程序结构_第1页
flaskwebdevelopment——大型应用程序结构_第2页
flaskwebdevelopment——大型应用程序结构_第3页
flaskwebdevelopment——大型应用程序结构_第4页
flaskwebdevelopment——大型应用程序结构_第5页
资源描述:

《flaskwebdevelopment——大型应用程序结构》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、FlaskWebDevelopment大型应用程序结构虽然小型web应用程序用单个脚本町以很方便,但这种方法却不能很好地扩展。随着应用变得复杂,在单个大的源文件小处理会变得问题重重。与人多数其他web框架不同,Flask对人型项目没有特定的纟R织方式;应用程序的结构完全交给开发人员自己决定。在这一章,提出一个可能的方式來组织管理一个大型应用程序的包和模块。这种结构将用于书屮其余的示例屮。1、项目结构示例7-1展示基本Flask应用程序结构示例基本多文件Flask应用结构

2、-flaskyl-app/

3、-templates/

4、-static/

5、-mai

6、n/

7、-_init_.py

8、-errors>py

9、-forms.py

10、-views.py

11、-_init_.py

12、-email.py

13、-models

14、-_init_.py卜test*.py

15、-venv/

16、equirements.txt

17、-config.py

18、-manage.py这个结构有四个顶层目录:Flask应用一般放置在名为app的目录下。migrations目录包含数据库迁移脚木,这和之前说的一样。单元测试放置在test目录下venv冃录包含Python虚拟环境,这和Z前说的也是一样的。还有一些新的文

19、件:requirements.txt列川一些依赖包,这样就可以很容易的在不同的计算机上部署一个相同的虚拟环境。config.py存储了一些配置设置。manage・py用于启动应用程序和其他应用程序任务。■为了帮助你完全理解这个结构,下面会描述将hello.py应用改为符合这一结构的整个流程。2、配置选项应用程序通常需要几个配置设叠。最好的例了就是在开发过程屮需要使用不同的数据库,测试,生产环境,这样他们可以做到互不干扰。我们可以使丿IJ配置类的层次结构來代替hello.py中的简单类字典结构配置。示例7-2展示了config,py文件。示例7-2.

20、config.py:应用程序配置importosbasedir=os.path.abspath(os.path.dirname(_file_))classConfig:SECRETKEY=os.environ.get('SECRETKEY')or*hardtoguessstring*SQLALCHEMY_COMMIT_ON_TEARDOWN=TrueFLASKY_MAIL_SUB3ECT_PREFIX=*[Flasky]1FLASKY_MAIL_SENDER='FlaskyAdmin*FLASKY_ADMIN

21、=os.environ.get(*FLASKY_ADMIN*)cmethoddefinit_app(app):passclassDevelopmentConfig(Config):DEBUG=TrueMAIL_SERVER='smtp.googlemail.com*MAIL_PORT=587MAIL_USE_TLS=TrueMAIL_USERNAME=os.environ.get(,MAIL_USERNAME')MAIL_PASSWORD=os.environ.get(*MAIL_PASSWORD1)SQLALCHEMY_DATABASE_URI=

22、os.environ.get('DEV_DATABASE_URL*)or'sqlite:///'+os.path.join(basedir,'data・dev.sqlite')classTestingConfig(Config):TESTING=TrueSQLALCHEMY_DATABASE_URI=os.environ.get('TEST_DATABASE_URL*)or'sqlite:///'+os.path.join(basedir,'da・sqlite')classProductionConfig(Config):SQLALCHEMY_

23、DATABASE_URI=os.environ.get('DATABASE_URL1)or'sqlite:///'+os.path.join(basedir,'data.sqlite")config={'development':DevelopmentConfig,'testing':TestingConfig,'production':ProductionConfig,'defauIt':DevelopmentConfigConfig基类包含一些相同配置;不同的子类定义不同的配置。额外配置可以在需要的时候在加入。为了让配置更灵活更安全,一些设置

24、可以从环境变量中导入。例如,SECRETJCEY,由于它的敏感性,可以在环境中设置,但如果环境中没有定义就必须提供一个默认

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。