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

相关推荐
excel7 分钟前
MySQL 9 在 Windows 上使用 mysqld --initialize-insecure 无响应的排查与解决方案
后端
weixin_4640780710 分钟前
Python学习小结
python·学习
你怎么知道我是队长11 分钟前
GO语言---defer关键字
开发语言·后端·golang
方圆想当图灵24 分钟前
深入理解软件设计:什么是好的架构?
后端·架构·代码规范
Clownseven32 分钟前
对象存储数据一致性:S3 vs Azure Blob vs GCS对比解析 (2025)
microsoft·flask·azure
ubax1 小时前
day 51 python打卡
开发语言·python
laocooon5238578861 小时前
基于Python的TCP应用案例,包含**服务器端**和**客户端**的完整代码
网络·python·tcp/ip
哆啦A梦的口袋呀1 小时前
设计模式汇总
python·设计模式
love530love1 小时前
是否需要预先安装 CUDA Toolkit?——按使用场景分级推荐及进阶说明
linux·运维·前端·人工智能·windows·后端·nlp
救救孩子把2 小时前
如何在n8n中突破Python库限制,实现持久化虚拟环境自由调用
开发语言·python·n8n