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

相关推荐
X56611 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
ZhengEnCi1 小时前
03ab-PyTorch安装教程 📚
python
狐狐生风2 小时前
LangChain 向量存储:Chroma、FAISS
人工智能·python·学习·langchain·faiss·agentai
狐狐生风2 小时前
LangChain RAG 基础
人工智能·python·学习·langchain·rag·agentai
uzong3 小时前
9 种 RAG 架构,每位 AI 开发者必学:完整实战指南
后端
老前端的功夫3 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
小江的记录本3 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
止语Lab3 小时前
从手动到框架:Go DI 演进的三个拐点
开发语言·后端·golang
yaoxin5211233 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
dFObBIMmai3 小时前
MySQL主从同步中大事务导致的延迟_如何拆分大事务优化同步
jvm·数据库·python