《每天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项目的结构和配置,包括目录结构、配置文件、环境变量和日志记录。

相关推荐
uzong2 小时前
后端线上发布计划模板
后端
uzong3 小时前
软件工程师应该关注的几种 UML 图
后端
上进小菜猪4 小时前
基于 YOLOv8 的 100 类中药材智能识别实战 [目标检测完整源码]
后端
少林码僧4 小时前
2.31 机器学习神器项目实战:如何在真实项目中应用XGBoost等算法
人工智能·python·算法·机器学习·ai·数据挖掘
智航GIS5 小时前
10.4 Selenium:Web 自动化测试框架
前端·python·selenium·测试工具
jarreyer5 小时前
摄像头相关记录
python
宝贝儿好5 小时前
【强化学习】第六章:无模型控制:在轨MC控制、在轨时序差分学习(Sarsa)、离轨学习(Q-learning)
人工智能·python·深度学习·学习·机器学习·机器人
大、男人5 小时前
python之asynccontextmanager学习
开发语言·python·学习
码事漫谈5 小时前
AI 技能工程入门:从独立能力到协作生态
后端
码事漫谈5 小时前
构建高并发AI服务网关:C++与gRPC的工程实践
后端