django中templates在settings的配置
来源:互联网 发布:上饶网络教育报名时间 编辑:程序博客网 时间:2024/04/30 04:28
有时候,一点小问题,就会纠结你半天,真是基础不牢啊。 彻底解决 django的模板templates路径的问题; 一般会提示什么模板找不到,类似:TemplateDoesNotExist at /accounts/login/ registration/login.html
一个提示 SyntaxError: EOL while scanning string literal :反斜杆错误 \ 不是 \
我的mysite工程的整个目录:
C:\web\mysite>tree /F卷 C 的文件夹 PATH 列表卷序列号为 00000200 0007:9B9BC:.│ db.sqlite3│ manage.py│├─blog│ │ admin.py│ │ admin.pyc│ │ forms.py│ │ forms.pyc│ │ models.py│ │ models.pyc│ │ tests.py│ │ urls.py│ │ urls.pyc│ │ views.py│ │ views.pyc│ │ __init__.py│ │ __init__.pyc│ ││ ├─migrations│ │ 0001_initial.py│ │ 0001_initial.pyc│ │ __init__.py│ │ __init__.pyc│ ││ └─templates│ └─blog│ base.html│ post_detail.html│ post_draft_list.html│ post_edit.html│ post_list.html│├─mysite│ │ lujing.py│ │ settings.py│ │ settings.pyc│ │ urls.py│ │ urls.pyc│ │ wsgi.py│ │ wsgi.pyc│ │ __init__.py│ │ __init__.pyc│ ││ └─templates│ ├─mysite│ │ base.html│ ││ └─registration│ login.html│└─static └─css blog.css
templates目录一般默认在app下面,我的例子中,templates就在应用blog下面,如果有什么html,会自动识别的,如果你的templates目录是这么建立的,那就不用再mysite/mysite/settings.py中说明templates目录在哪,django会自动查找的,常在APP各自的templates目录中中保存APP特定的模板,并不直接在APP对应templates目录中直接存放模板文件本身,而是在该目录中在创建一层以APP名称命名的目录:mystite/bolg/templates/blog
但是,我非得不走寻常路,我要把templates建立在某个地方,怎么办。
我在写用户认证的是时候需要一个模板login.html,其规定默认的目录是:mysite/mysite/templates/login.html,第二个mysite目录又不是app,你的templates是不会被识别的吧,怎么办,我们在mysite/mysite/settings.py的文件中自定义下我这个templates目录在哪,代码:
TEMPLATE_DIRS = ( os.path.join(BASE_DIR, "mysite\\templates").replace('\\','/'),#注意逗号 )
什么意思,在settings.py中规定了,
import os
BASE_DIR = os.path.dirname(os.path.dirname(file))
base_dir 就是工程project的目录,工程目录下一级就是应用app的目录。
os.path.dirname(file):settings.py文件所在的目录,我的是:C:\web\mysite\mysite
os.path.dirname(os.path.dirname(file)) :又来一次,就是 C:\web\mysite\mysite的上一级目录,结果是:C:\web\mysite,也就是说 BASE_DIR是 C:\web\mysite 也就是工程的目录。
下面解释下:
os.path.join(BASE_DIR, "mysite\\templates").replace('\\','/'),#\\转义\
我们替换掉base_dir
os.path.join(BASE_DIR, “mysite\templates”).replace(‘\’,’/’),
os.path.join(“C:\web\mysite”, “mysite\templates”).replace(‘\’,’/’),
我们不看.replace(‘\’,’/’),
结果是:os.path.join(“C:\web\mysite”, “mysite\templates”)==C:\web\mysite\mysite\templates
注意,这和文字的join不同,所以要写成mysite\templates 而不是\mysite\templates.
r”C:\web\mysite\mysite\templates”.replace(‘\’,’/’)==’C:/web/mysite/mysite/templates’
所以前面的那段话就是说:
TEMPLATE_DIRS = ( r'C:/web/mysite/mysite/templates', )
- django中templates在settings的配置
- Django settings中关于静态文件的配置
- 全面解析Django的模板路径设置templates(settings.py)
- Django Templates的设置
- Django 配置settings.py
- django settings 基本配置
- Django中Settings的设置分类
- 【Django】settings(django中settings设置)
- 【Django】settings(django中settings设置)
- django logging在settings.py文件里配置
- django中的settings.py中数据库配置介绍
- django settings配置参数详解
- Django中项目目录下的settings.py中STATIC_URL配置的路径对所有应用都生效
- django中settings.py设置
- django配置settings时遇到Could not import settings 'conf.local'的解决方法
- django的settings中几个static设置项的关系
- Django&templates
- django框架的settings设置
- TextVersion_05_OOM异常
- cocos2dx-3.x android ant配置实现单工程管理
- Apache HttpServer启动出错处理
- PHP服务器时间
- TextVersion_06_Android性能优化
- django中templates在settings的配置
- Java对象序列化ObjectOutputStream和ObjectInputStream示例
- Leetcode Everyday: 243. Shortest Word Distance
- 个人开公司的流程及费用
- shared_ptr的线程安全性
- 实验报告-5
- 有关Lattice Diamond的若干bug
- TextVersion_07_Fragment相关细节
- Java中的WeakHashMap实现分析