flask学习笔记之大型程序的结构

本文介绍了使用Flask构建大型程序的结构,包括项目结构、配置选项、程序包的使用,特别是如何通过工厂函数和蓝本来动态管理配置和路由。文章详细讲解了配置的层次结构、工厂函数的创建、蓝本的注册与错误处理,以及启动脚本、需求文档和单元测试的编写。
摘要由CSDN通过智能技术生成

我们将介绍一种使用包和模块组织大型程序的方式。

7.1 项目结构

Flask 程序的基本结构如示例 7-1 所示。

 这种结构有4个顶级文件夹:

1)Flask程序一般都保存在名为app的包中。

2) migrations文件夹包含数据库迁移脚本

3)单元测试编写在tests包中

4)venv文件夹包含Python虚拟环境

同时还创建了一些新文件:

  • requirements.tet列出了所有依赖包,便于在其他电脑中重新生成相同的虚拟环境。
  • config.py 存储配置
  • manage.py 用于启动程序以及其他的程序任务

7.2 配置选项

程序经常需要设定多个配置。

使用层次结构的配置类。

#config.py:程序的配置
import os
basedir = os.path.abspath(os.path.dirname(__file__))

class Config:
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string'
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    FLASKY_MAIL_SUBJECT_PREFIX = '[Flasky]'
    FLASKY_MAIL_SENDER = 'Flasky Admin <flasky@example.com>'
    FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN')
    @staticmethod
    def init_app(app):
        pass
class DevelopmentConfig(Config):
    DEBUG = True
    MAIL_SERVER = 'smtp.googlemail.com'
    MAIL_PORT = 587
    MAIL_USE_TLS = True
    MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
    MAIL_PASSWORD = os.environ.get('DEV_DATABASE_URL') or 'sqlite:///'
    +os.path.join(basedir, 'data-dev.sqlite')

class TestingConfig(Config):
    TESTING = True
    SQLALCHEMY_DATABASE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值