《每天5分钟用Flask搭建一个管理系统》第2章:项目结构与配置

第2章:项目结构与配置

2.1 Flask项目目录结构

一个典型的Flask项目可能包含以下目录和文件:

  • /app - 应用目录
    • __init__.py - 初始化Flask应用
    • models.py - 数据模型定义
    • views.py - 视图函数定义
    • forms.py - 表单类定义
  • /config - 配置文件目录
    • config.py - 应用配置
    • default_config.py - 默认配置
  • /templates - 存放模板文件
  • /static - 存放静态文件,如CSS、JavaScript和图片
  • migrations - 数据库迁移文件(如果使用Flask-Migrate)
  • tests - 测试文件
  • run.py - 应用启动文件
  • requirements.txt - 项目依赖列表
  • .env - 环境变量文件

示例代码:项目目录结构

plaintext 复制代码
my_flask_app/
│
├── /app
│   ├── __init__.py
│   ├── models.py
│   ├── views.py
│   └── forms.py
│
├── /config
│   ├── config.py
│   └── default_config.py
│
├── /templates
│   └── ...
│
├── /static
│   └── ...
│
├── /migrations
│   └── ...
│
├── /tests
│   └── ...
│
├── run.py
├── requirements.txt
└── .env
2.2 配置文件的使用

Flask应用的配置可以通过配置文件进行管理。创建一个config.py文件来定义不同的配置类。

示例代码:config.py

python 复制代码
class Config(object):
    SECRET_KEY = 'your_secret_key'
    SQLALCHEMY_DATABASE_URI = 'sqlite:///db.sqlite'

class DevelopmentConfig(Config):
    DEBUG = True

class ProductionConfig(Config):
    DEBUG = False

app_config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig
}
2.3 环境变量的配置

环境变量用于存储敏感信息,如数据库密码或API密钥,不应直接硬编码在代码中。

示例代码:设置环境变量

plaintext 复制代码
export FLASK_APP=my_flask_app
export FLASK_ENV=development

在Flask中,你可以使用os.environ来访问这些环境变量。

示例代码:访问环境变量

python 复制代码
import os
DATABASE_URI = os.environ.get('DATABASE_URI', 'default_uri')
2.4 日志记录的设置

日志记录对于调试和监控应用至关重要。Flask使用Python的logging模块进行日志记录。

示例代码:配置日志记录

python 复制代码
import logging
from logging.handlers import RotatingFileHandler

def configure_logging(app):
    if not app.debug:
        file_handler = RotatingFileHandler('app.log', maxBytes=10240, backupCount=10)
        file_handler.setFormatter(logging.Formatter(
            '%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'
        ))
        file_handler.setLevel(logging.INFO)
        app.logger.addHandler(file_handler)
        app.logger.setLevel(logging.INFO)
        app.logger.info('MyFlaskApp startup')

__init__.py中调用此函数来配置日志。

示例代码:init.py中的日志配置

python 复制代码
from flask import Flask
from app import create_app, configure_logging

app = create_app()
configure_logging(app)
2.5 总结

本章介绍了如何设置Flask项目的结构和配置,包括目录结构、配置文件、环境变量和日志记录。

相关推荐
古希腊掌管学习的神1 分钟前
[LeetCode-Python版]相向双指针——611. 有效三角形的个数
开发语言·python·leetcode
m0_748244834 分钟前
StarRocks 排查单副本表
大数据·数据库·python
B站计算机毕业设计超人10 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
路人甲ing..13 分钟前
jupyter切换内核方法配置问题总结
chrome·python·jupyter
游客52025 分钟前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
每天都要学信号44 分钟前
Python(第一天)
开发语言·python
搬码后生仔1 小时前
asp.net core webapi项目中 在生产环境中 进不去swagger
chrome·后端·asp.net
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
咸鱼桨1 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派
yusaisai大鱼2 小时前
tensorflow_probability与tensorflow版本依赖关系
人工智能·python·tensorflow