本篇文章首席CTO笔记来给大家介绍有关在django怎么进行修改以及django使用教程的相关内容,希望对大家有所帮助,一起来看看吧。
本文目录一览:
1、「Django框架」-拆分配置文件settings2、如何修改django后台app顺序3、如何修改django auth.user 的默认get「Django框架」-拆分配置文件settings
使用 Django 命令生成一个项目的基本结构时,配置信息默认保存在和项目目录同名的目录下的 settings.py 文件里, 在实际的开发中,对于一个项目而言,这样往往是不合适的,需要将 settings 配置文件拆分为几个文件, 线上和线下都会使用的文件放置到 base.py 文件里,线上的放置在 product.py 文件里,开发测试的文件放置在 develop.py 文件里。这样功能划分就明确了,方便我们线上线下的调试。
1)在项目同名目录下,创建一个 settings 的包(目录下含 __init__.py 的文件夹)。
2)在 settings 的包中分别新建3个文件:公共基础 base.py (用于配置 Django 默认生成配置文件), develop.py (用于开发环境)、 product.py (用于生产环境)。
3)将原来的 settings.py 的内容复制到 base.py 文件中。
4)确认目录OK后,我们需要修改 base.py 中的时区和语言配置:
如果有类似公共部分需要修改的,则在 base.py 中修改即可,例如注册子应用之类的,在此就不一一举例。。
5)之后,对于线上线下不同部分,我们只要导入 base.py 模块,再针对不同部分进行修改即可,例如线上线下对接不同的测试数据库,我们则可以修改数据库连接:
6)修改 manage.py 文件, Django 使用自带服务启动时需要知道 settings 文件的路径。
7)到上生产的时候,使用 asgi.py ( Django3.x 中)或 wsgi.py ( Django2.x 以下版本),则可以更改生产配置文件的路径:
以上又有个问题,如果线上线下环境切换,又要改动代码, 我们可以通过设置系统环境变量来动态获取,避免修改代码:
这样通过读取系统环境变量中的 LIPIN_PROFILE 来控制 Django 加载不同的 settings 文件。
这样可以将原来的 settings.py 文件删掉!!
但是这样就会有个问题,你会发现之前好好的网页我们访问不了了,模板找不到!
这是因为之前的配置文件中,路径问题,因为我们原来的配置文件是在同名目录下,而我们现在将配置文件拆分为一个新的包,所以还要上一级目录才是我们需要的:
如何修改django后台app顺序
Django修改app在Admin后台显示的名称
Dajngo在Admin后台默认显示的应用的名称为创建app时的名称
从Django1.7以后不再使用app_label,修改app相关需要使用AppConfig。由于Django的版本更新存在较大的改动,所以建议开发Django还是阅读官方文档,百度,Google只能辅助,在应用的__init__.py里面进行修改即可。
如何修改django auth.user 的默认get
#Django#User的urls设置问题在你使用了UserProfile之后将会出现一个问题,就是User Model 的get_absolute_url在django的auth app中默认是/users/username/, 如果你已经扩展实现了一个UserProfile的话,你可能需要使用userprofile.get_absolute_url来使用,那么你需要重新定义auth.user的绝对url了.
auth.models 中的user的get_absolute_url是这样定义的:
[python] view plain copy
def get_absolute_url(self):
return "/users/%s/" % urllib.quote(smart_str(self.username))
这里定死了吧,但是django还是给了方法来修改它.
方法就是:在settings.py中增加一个设置:ABSOLUTE_URL_OVERRIDES
[python] view plain copy
ABSOLUTE_URL_OVERRIDES = {
'blogs.weblog': lambda o: "/blogs/%s/" % o.slug,
'news.story': lambda o: "/stories/%s/%s/" % (o.pub_year, o.slug),
}
所以对auth.user来说,要修改就按照下面的来:
[python] view plain copy
ABSOLUTE_URL_OVERRIDES = {
'auth.user': lambda u: "/member/profile/%s/" % u.username,
#其他的设置
}
结语:以上就是首席CTO笔记为大家整理的关于在django怎么进行修改的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django使用教程、在django怎么进行修改的相关内容别忘了在本站进行查找喔。