签入版本

This commit is contained in:
2026-09-12 22:24:53 +08:00
commit 05cb22302c
863 changed files with 118186 additions and 0 deletions
+136
View File
@@ -0,0 +1,136 @@
# ============================================================
# DjangoAdmin Flask 环境变量模板
# ============================================================
# 使用方法:
# 1. 复制为 .env:cp .env.example .env
# 2. 填写 <占位符> 标记的敏感值(严禁将真实 .env 提交到版本库)
# 说明:.env 已被 .gitignore 忽略
# ============================================================
# ============================================================
# 应用基础配置(config/app.py)
# ============================================================
FLASK_NAME=Flask+NaiveVue旗舰版
FLASK_VERSION=v3.0.0
FLASK_APP=app.py
FLASK_ENV=development # development / production
FLASK_DEBUG=True # 生产环境必须为 False
FLASK_USE_RELOADER=False
FLASK_HOST=127.0.0.1
FLASK_PORT=8021
FLASK_SECRET_KEY=<必填,长度至少16字符,如生成随机串>
FLASK_DEMO=False # True=演示模式,拦截写操作
# 站点域名(定时任务等内部 HTTP 调用使用)
# FLASK_SITE_DOMAIN=http://127.0.0.1:8021
# 跨域白名单(多个用英文逗号分隔;配置后 CORS 允许携带凭证)
CORS_ALLOWED_ORIGINS=http://localhost:8001
# 上传配置
FLASK_UPLOAD_DIR=./uploads
FLASK_FILE_URL=http://file.flask.naivevue
UPLOAD_ALLOWED_EXTS=.jpg,.jpeg,.png,.gif,.bmp,.webp,.svg,.ico,.txt,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.mp3,.mp4,.zip,.rar,.7z
UPLOAD_MAX_SIZE_MB=10
# 反向代理层数(0=无代理;1=前面有 1 层 Nginx)
PROXY_NUM=0
# ============================================================
# 数据库配置(config/database.py)
# ============================================================
# 数据库驱动 - 可选 mysql/postgresql/mssql/sqlite/oracle
# (别名:postgres=postgresql、sqlserver=mssql、sqlite3=sqlite)
# 示例:
# MySQL: DB_DRIVER=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_USERNAME=root DB_PASSWORD=***
# PostgreSQL: DB_DRIVER=postgresql DB_HOST=127.0.0.1 DB_PORT=5432 DB_USERNAME=postgres DB_PASSWORD=***
# SQL Server: DB_DRIVER=mssql DB_HOST=127.0.0.1 DB_PORT=1433 DB_USERNAME=sa DB_PASSWORD=***
# SQLite: DB_DRIVER=sqlite DB_DATABASE=dev.db(此时 DB_DATABASE 即数据库文件完整路径,
# 可填相对/绝对路径如 C:/apps/dev.db,忽略 host/port/user/password)
# Oracle: DB_DRIVER=oracle DB_HOST=127.0.0.1 DB_PORT=1521 DB_USERNAME=system DB_PASSWORD=***
# (DB_DATABASE 填 SERVICE_NAME,如 XEPDB1)
DB_DRIVER=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=djangoadmin.flask.naivevue
DB_USERNAME=root
DB_PASSWORD=<必填>
DB_PREFIX=flask_
DB_DEBUG=True
DB_SSL=False
# 若开启 DB_SSL=True,配置以下证书路径
# DB_SSL_CA=
# DB_SSL_CERT=
# DB_SSL_KEY=
# ============================================================
# Redis 缓存(config/redis.py)
# ============================================================
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=<如有则填写,否则留空>
REDIS_INDEX=0
REDIS_AUTH=True # 是否启用密码认证
REDIS_DECODE_RESPONSES=True
# ============================================================
# JWT / 权限 / 白名单(config/auth.py)
# ============================================================
JWT_SALT=<必填,JWT 签名密钥,建议随机长串>
JWT_EXPIRE_MINUTES=20 # 滑动会话空闲超时(分钟),无请求则过期,活跃自动续期
JWT_ABSOLUTE_TIMEOUT_MINUTES=1440 # 令牌绝对有效期(分钟),防止无限续期,须≥JWT_EXPIRE_MINUTES
LOGIN_FAIL_MAX=5
LOGIN_LOCK_SECONDS=300
PERMISSION_ENABLED=True # 权限校验总开关(开发可关)
# 内部调用密钥(定时任务等无用户场景,通过 X-Scheduler-Key / X-Internal-API-Key 传递)
INTERNAL_API_KEY=<必填>
INTERNAL_ALLOWED_IPS=127.0.0.1
# 登录白名单(以下路径跳过登录校验)
LOGIN_WHITELIST_EXACT=/api/v1/login,/api/v1/captcha,/favicon.ico,/health
LOGIN_WHITELIST_PREFIX=/api/v1/job/sendSms,/public,/static,/api/webhook
LOGIN_WHITELIST_WILDCARD=/api/v1/job/*/send*,/api/v1/*/public*
LOGIN_WHITELIST_DEBUG=True
LOGIN_WHITELIST_LOG_ACCESS=True
# 验证码万能码(仅 FLASK_DEMO=True 时生效)
CAPTCHA_BYPASS_CODE=
# ============================================================
# 邮件(config/mail.py)
# ============================================================
MAIL_MAILER=smtp
MAIL_SERVER=smtp.163.com
MAIL_PORT=465
MAIL_USE_SSL=True
MAIL_ENCRYPTION=
MAIL_USERNAME=<必填>
MAIL_PASSWORD=<必填>
MAIL_FROM_NAME=
MAIL_FROM_ADDRESS=
# ============================================================
# 短信(config/sms.py,阿里云短信)
# ============================================================
SMS_PROVIDER=aliyun
SMS_ALIYUN_ACCESS_KEY_ID=<必填>
SMS_ALIYUN_ACCESS_KEY_SECRET=<必填>
SMS_ALIYUN_SIGN_NAME=<必填>
SMS_ALIYUN_ENDPOINT=dysmsapi.aliyuncs.com
SMS_ALIYUN_CONNECT_TIMEOUT=10000
SMS_ALIYUN_READ_TIMEOUT=10000
# ============================================================
# 验证码图片(config/captcha.py)
# ============================================================
CAPTCHA_LENGTH=6
CAPTCHA_EXPIRE=300
CAPTCHA_RATE_LIMIT=10
CAPTCHA_RATE_WINDOW=60
CAPTCHA_CHARS=ABCDEFGHJKLMNPQRSTUVWXYZ2346789
CAPTCHA_FONT_PATH=static/fonts/Vera.ttf
CAPTCHA_IMAGE_WIDTH=160
CAPTCHA_IMAGE_HEIGHT=50
CAPTCHA_FONT_SIZE=28
CAPTCHA_NOISE_LINES=6
CAPTCHA_NOISE_DOTS=30