【问题标题】:How to setup urls.py to work with app/urls.py and templates in src with Django如何设置 urls.py 以使用 Django 的 src 中的 app/urls.py 和模板
【发布时间】:2016-02-07 04:32:57
【问题描述】:

试图弄清楚如何设置我自己的项目。

我创建了一个新的 Django 应用来制作主页。

src/home/urls.py:

from django.conf.urls import url

urlpatterns = [
    url(r'^$', 'views.index', name='index'),
]

src/home/views.py:

from django.shortcuts import render
# Create your views here.
def index(request):
    return render(request, "index.html", {})

src/project/urls.py:

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^', include('home.urls')),
    url(r'^admin/', admin.site.urls),
]

src/templates/index.html:

<h1>Hello World</h1>

它不在主应用程序内的模板文件夹中的原因是因为我想最终将它用作所有应用程序和页面的基本模板

错误读取:

ImportError at /
No module named 'views'

使用 python 3.5 和 django 1.9

EDIT*** 更改为 home.views.index

ERROR 现在改为:

TemplateDoesNotExist at /
index.html

【问题讨论】:

    标签: python django django-templates django-views


    【解决方案1】:

    确保您的home 是一个,并且您有__init__.py

    您可能还需要在 urls.py 中将 views.index 更改为 home.views.index

    【讨论】:

    • @SierraKilo 按照@alecxe 的建议将views.index 更改为home.views.index
    • @selcuk 现在我收到一个不同的错误,说模板不存在。
    • 那么你的模板加载器配置不正确。更新您的问题以包含您的settings.py,以便我们进行诊断。
    • @SierraKilo 您可能需要调整TEMPLATES setting
    • 谢谢!!! 'DIRS': [os.path.join(BASE_DIR, "templates")], 但这是否意味着我以后不能在其他应用程序中使用模板?它现在会一直在这里寻找他们吗?还是会先查看应用程序内部,然后再查看此处?
    【解决方案2】:

    在站点范围的 Urls.py 中执行以下操作:

    from app_name import urls as app_name_urls
    from django.conf.urls import include
    
    urlpatterns=[
    path('',include(app_name_urls)
    ]
    

    在 App/urls.py 中

    from django.urls import path
    from .import views
    urlpatterns=[
        #your paths go here
    ]
    

    【讨论】:

      猜你喜欢
      • 2012-12-10
      • 2012-01-26
      • 2011-07-09
      • 2017-12-21
      • 2022-11-13
      • 2017-06-11
      • 2019-01-21
      • 2015-08-22
      • 2012-07-11
      相关资源
      最近更新 更多