# ============================================================ # 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