django URL问题(代码中url书写规范),django 多个APP时 static文件问题,多个app下的templates中的同名html文件查找顺序
绝对地址
如
<a href='http://127.0.0.1:8000/page/1'></a>
''''
绝对地址很简单就是将地址写全
'''
相对地址
'/' 开头得相对地址
'/page/1' -'/'开头的相对地址,浏览器会把当前地址栏里的协议,ip和端口加上这个地址,作为最终访问地址,即如果
当前页面地址栏为http://127.0.0.1:8000/page/3;当前相对地址最终结果为http://127.0.0.1:8000 + /page/1
没有 '/' 开头得相对地址
'page/1'-没有‘/’开头的相对地址,浏览器会根据当前url的最后一个/之前的内容加上该相对地址作为最终访问地
址,例如当前地址栏地址为 http://127.0.0.1:8000/topic/detail; 则该相对地址最终结果为 http://127.0.0.1:8000/topic/ + page/1
django 多个APP时 static文件问题
每个APP下都有自己的static文件夹,那如何设置将不会混用呢
以下是实例(我项目里有两个APP(login 和main))
1、首先在setting 文件修改配置路径
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "MGStudio", "static"),
os.path.join(BASE_DIR, "main", "static"),
os.path.join(BASE_DIR, "login", "static"),
]
2、在每个APP下的static下建立以APP名相同的文件夹
比如我在login/static/login/
放入样式JS CSS等
3、如何调用样式
{% static 'main/img/firefox-logo-small.jpg' %}
{% static 'login/img/name.png' %}
多个app下的templates中的同名html文件查找顺序
应用内部可以配置模板目录
1.应用下手动创建templates文件夹
2. settings.py中开启应用模板功能
TEMPLATE配置项中的'APP_DIRS'值为True即可
应用下templates和外层templates 都存在时,django得查找模板规则。
1.优先查找外层templates目录下的模板
2.按INSTALLED_APPS配置下的应用顺序逐层查找
解决方法
我们可以在对应应用下的templates文件夹下创建一个与应用名相同的文件,再将模板文件放到该文件夹中。
如有两个应用分别为news和music,都有一个index.html的模板文件,我们就可以这样。
news:
templates
news
index.html
music:
templates
music
index.html
本文作者:春游去动物园
本文链接:https://www.cnblogs.com/chunyouqudongwuyuan/p/16352243.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步