发布时间:2026/8/16 4:26:15
Django项目配置全攻略:settings配置文件 文章目录一、settings 配置文件介绍二、数据库配置mysql、redis三、配置日志四、域名配置五、自定义用户模型六、定时任务性能优化一、settings 配置文件介绍settings.py 是 Django 项目的核心配置文件存放数据库、静态文件、中间件等关键参数。# 上线时为False调试时为True浏览页面发生错误会告诉你那里错了DEBUGTrue# 语言 英文en-us 中文zh-HansLANGUAGE_CODEzh-Hans# 时区 UTC Asia/ShanghaiTIME_ZONEAsia/Shanghai# 用户上传文件的配置MEDIA_URL/media/MEDIA_ROOTos.path.join(BASE_DIR,media)二、数据库配置mysql、redismysql配置如果本地建立了数据库且使用本地的 MySql 数据库则可以通过修改settings.py中的配置来连接DATABASES{default:{ENGINE:django.db.backends.mysql,HOET:127.0.0.1,PORT:3306,USER:root,PASSWORD:123456,NAME:meiduo_mall,}}同时需要在settings.py同级目录下的__init__.py文件添加如下内容需提前安装pip install pymysql作用将 PyMySQL 适配为 Django 默认使用的 MySQL 驱动接口。Django 默认使用 MySQLdb 作为 MySQL 数据库驱动但 MySQLdb 仅支持 Python 2 或需要额外编译。PyMySQL 是一个纯 Python 实现的 MySQL 客户端兼容 Python 3通过此方法可以让 Django 将其识别为合法的 MySQL 驱动使用场景当系统未安装 MySQLdb 或运行在 Python 3 环境下时需使用 PyMySQL 作为替代importpymysql pymysql.install_as_MySQLdb()redis配置Redis在Django中主要用于缓存、会话存储、消息队列等场景能够显著提升应用性能缓存加速Redis作为高速缓存存储查询结果、页面片段或API响应减少数据库查询压力适合高频访问但更新不频繁的数据会话管理将会话数据Session存储在Redis中解决多服务器环境下会话共享问题比数据库存储更快且支持过期时间消息队列通过Redis的发布订阅Pub/Sub或List结构实现异步任务队列配合Celery处理耗时任务如邮件发送、文件处理等频率限制存储用户请求计数实现API限流或防止暴力破解例如登录尝试次数限制实时功能支持实时通知、在线状态等场景利用Redis的快速读写特性推送数据变更准备工作确保已安装Redis服务端并启动服务。若未安装可从Redis官网下载并运行安装依赖pip install redis django-redis在settings.py文件中添加Redis相关配置CACHES{default:{BACKEND:django_redis.cache.RedisCache,LOCATION:redis://127.0.0.1:6379/1,# 数据库编号1OPTIONS:{CLIENT_CLASS:django_redis.client.DefaultClient,PASSWORD:yourpassword,# 如果有密码}}}# 可选将Session存储改为RedisSESSION_ENGINEdjango.contrib.sessions.backends.cacheSESSION_CACHE_ALIASdefault使用缓存示例fromdjango.core.cacheimportcache# 设置缓存有效期60秒cache.set(key,value,timeout60)# 获取缓存datacache.get(key)三、配置日志在 settings.py 中配置日志系统Django 使用 Python 标准库 logging 模块LOGGING{version:1,disable_existing_loggers:False,# 是否禁用以及存在的日志器formatters:{# 日志信息显示格式verbose:{format:%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s},simple:{format:%(levelname)s %(module)s %(lineno)d %(message)s},},filters:{# 对日志进行过滤require_debug_true:{# django在debug模式下才输出日志():django.utils.log.RequireDebugTrue,},},handlers:{# 日志处理方式console:{# 向终端输出日志level:INFO,filters:[require_debug_true],class:logging.StreamHandler,formatter:simple},file:{# 向文件中输出日志level:INFO,class:logging.handlers.RotatingFileHandler,filename:os.path.join(BASE_DIR,logs/log.log),# 日志文件的位置maxBytes:300*1024*1024,backupCount:10,formatter:verbose},},loggers:{# 日志器django:{# 定义一个名为django的日志器handlers:[console,file],# 可以同时向终端与文件中输出日志propagate:True,# 是否继续传递日志信息level:INFO,# 日志接收的最低日志级别},}}日志级别含义DEBUG调试信息适用于开发环境INFO常规操作记录WARNING警告信息不影响系统运行ERROR错误信息影响部分功能CRITICAL严重错误可能导致系统崩溃在视图或任何 Python 模块中调用日志importlogging loggerlogging.getLogger(__name__)defmy_view(request):logger.debug(This is a debug message)logger.info(This is an info message)logger.warning(This is a warning message)logger.error(This is an error message)logger.critical(This is a critical message)日志文件轮转配置使用 RotatingFileHandler 实现日志按文件大小自动分割日志避免单个日志文件过大handlers:{file:{level:DEBUG,class:logging.handlers.RotatingFileHandler,filename:/path/to/django.log,maxBytes:1024*1024*5,# 5MBbackupCount:5,formatter:verbose,},}按时间分割日志文件handlers:{file:{level:DEBUG,class:logging.handlers.TimedRotatingFileHandler,filename:/path/to/django.log,when:midnight,# 每天午夜interval:1,backupCount:7,# 保留7天formatter:verbose,},}日志过滤器配置添加自定义过滤器filters:{require_debug_true:{():django.utils.log.RequireDebugTrue,},},handlers:{console:{level:DEBUG,filters:[require_debug_true],class:logging.StreamHandler,},}数据库日志记录将日志存入数据库需要自定义处理器classDatabaseLogHandler(logging.Handler):defemit(self,record):from.modelsimportErrorLog ErrorLog.objects.create(levelrecord.levelname,messagerecord.getMessage(),modulerecord.module,linenorecord.lineno)LOGGING{handlers:{db:{level:ERROR,class:myapp.logging_handlers.DatabaseLogHandler,},}}四、域名配置linux系统修改文件/etc/hosts添加内容127.0.0.1 www.xxx.siteWindows系统修改文件C:\Windows\systems32\drivers\etc\hosts添加内容127.0.0.1 www.xxx.site修改settings.py文件ALLOWED_HOSTS[127.0.0.1,www.xxx.site]然后在网页访问www.xxx.site就是访问127.0.0.1五、自定义用户模型在 Django 中AUTH_USER_MODEL 是一个关键配置项用于指定项目中使用的自定义用户模型。它决定了用户认证系统的基础模型类取代 Django 默认的 User 模型核心功能自定义用户模型允许开发者扩展或完全替换 Django 默认的 User 模型django.contrib.auth.models.User。例如可以添加字段如 phone_number 或修改认证逻辑如改用邮箱登录数据库表关联所有与用户关联的外键如 ForeignKey、OneToOneField会自动引用 AUTH_USER_MODEL 指定的模型确保数据一致性认证系统集成Django 的权限系统Permission、组Group和内置视图如 LoginView均基于此配置运行配置方法在settings.py中定义#通过提供一个值给AUTH USER MODEL设置# 指向自定义的模型Django允许你覆盖默认的User模型# AUTH_USER_MODEL 子应用名.模型名AUTH_USER_MODELusers.User注必须在首次迁移makemigrations前设置否则需重建数据库模型定义自定义模型需继承 AbstractUser 或 AbstractBaseUserfromdjango.contrib.auth.modelsimportAbstractUserclassCustomUser(AbstractUser):phone_numbermodels.CharField(max_length20)外键引用方式在模型中引用用户时应使用 settings.AUTH_USER_MODEL 而非直接导入fromdjango.confimportsettingsclassOrder(models.Model):usermodels.ForeignKey(settings.AUTH_USER_MODEL,on_deletemodels.CASCADE)导入限制避免直接导入 User 模型否则可能导致循环导入或模型冲突。需通过 get_user_model() 动态获取fromdjango.contrib.authimportget_user_model Userget_user_model()六、定时任务性能优化django-crontab 是一个基于 Linux 系统 crontab 的 Django 定时任务扩展允许通过 Django 配置管理周期性任务无需直接操作系统的 crontab 文件。它简化了定时任务的创建、更新和删除流程应用场景利用好定时任务可以有效的提升项目的性能页面静态化当页面中涉及一些数据库查询操作时可以利用定时任务定期查询一次数据库将生成一份经过数据渲染后的静态html文件后期请求直接返回该静态文件有效减少数据库查询操作定时更新redis页面涉及数据时可以利用定时任务将数据定时更新保存到redis中后端返回时从redis中读取数据相比数据库redis的读写速度更快安装依赖pip install django-crontab配置步骤添加到 INSTALLED_APPS。在 Django 项目的 settings.py 文件中添加 django_crontab 到 INSTALLED_APPSINSTALLED_APPS[...,django_crontab,]配置定时任务。在 settings.py 中定义 CRONJOBS 列表指定任务频率和执行的函数路径。CRONJOBS[# 参数1: 频次 每1分钟生成一次首页静态文件 分 时 日 月 周# 参数2: 任务(函数)# 参数3: 日志(*/5 * * * *,myapp.cron.my_scheduled_job, /tmp/my_job.log),# 支持传递参数和自定义环境变量(0 1 * * *,myapp.cron.daily_backup,[arg1,arg2],{DJANGO_ENV:production}),]编写任务函数。在应用目录下创建 cron.py 文件定义任务函数defmy_scheduled_job():print(This task runs every 5 minutes)管理定时任务添加任务到系统 crontabpython manage.py crontab add查看已激活的任务列表python manage.py crontab show移除所有任务python manage.py crontab remove

相关新闻

2026/8/16 4:26:15

FPGA/ASIC设计中set_input_delay约束详解:从原理到实战避坑指南

1. 从一次时序违例的调试说起最近在做一个高速接口的FPGA原型验证项目,遇到了一个让人头疼的问题:在综合后静态时序分析(STA)报告中,一个关键的输入端口路径出现了建立时间违例。报告显示,数据路径的延迟是…

2026/8/16 4:21:15

MemSFT:大模型微调中灾难性遗忘与对齐税的解决方案

如果你正在微调大语言模型,是否遇到过这样的困境:模型在新任务上表现越来越好,却在原本擅长的通用能力上“一落千丈”?或者,为了让模型学会“礼貌对话”,结果它连“112”都忘了? 这不是个例&am…

2026/8/16 8:36:30

学术论文AI率控制与降AI率实操指南

1. 论文AI率飙升的现状与挑战 2026年的学术圈正面临一个前所未有的困境——毕业论文的AI生成内容比例居高不下。最近某高校抽查显示,超过35%的硕士论文存在AI生成内容超标问题,甚至有部分博士论文的AI率突破了50%警戒线。这已经不再是简单的学术道德问题…

2026/8/16 8:36:30

基于Win32 API实现现代化窗口控件:磁吸、拉伸与动画效果

在实际桌面应用开发中,窗口管理是一个既基础又复杂的课题。开发者不仅要处理窗口的创建、显示和关闭,更要应对用户对窗口交互的流畅性、美观性和功能性的高要求。一个拥有自由拖动、拉伸、最大化最小化、磁吸动画等特性的窗口,往往需要开发者…

2026/8/16 8:36:30

Photoshop抠图实战:快速选择、钢笔与通道三大核心方法详解

1. 从“抠图”到“选区”:理解Photoshop的核心操作逻辑 在平面设计、电商美工、摄影后期乃至日常图片处理中,“抠图”几乎是每个接触Photoshop的人都绕不开的必修课。很多人一听到“抠图”,脑海里立刻浮现出各种复杂的工具和让人眼花缭乱的步…

2026/8/16 8:36:30

避开90%论文AI翻车坑✅Paperxie双检合规+全套学术干货太稳了

现在写论文最大的坑根本不是写不出字,是查重过了、AI检测直接高危翻车! 很多普通AI只能凑字数、降字面重复率,机器模板痕迹巨重,完全适配不了高校最新的双检审核规则,辛辛苦苦改完的论文,盲审直接判定AI超…

2026/8/16 8:36:30

Access2019数据库模糊搜索功能实现:多字段查询与窗体交互设计

1. 项目概述:在Access2019中构建高效数据搜索系统在数据库应用的日常使用中,数据检索是最高频的操作之一。无论是管理客户信息、库存清单还是项目记录,用户最迫切的需求往往不是复杂的报表分析,而是能快速、精准地找到自己需要的那…

2026/8/16 8:31:29

OpenClaw与OpenRouter集成:一站式大模型API聚合与智能路由实践

1. 从“单打独斗”到“一钥通达”:为什么我们需要模型聚合层 如果你和我一样,在过去一年里深度折腾过各种大模型,那你一定经历过这种“甜蜜的烦恼”:ChatGPT的对话逻辑严谨,Claude的文档分析能力出众,DeepS…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/15 4:56:16

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…