我的第一个Django应用-不知道如何创建主页

问题描述

我已经学习python一段时间了,我想让更多人可以使用我的小型程序之一。 我正在学习如何为我的项目创建URL,但无法为主页创建URL。正如我在django较早版本的课程中发现的那样,您应该在urls.py文件中创建一个如下所示的函数

from django.http import HttpResponse

def home(request):
    return HttpResponse('this is the test homepage')

并将其与views.py中的某些行配对:

path('^$',views.home)

这对我不起作用。我还尝试创建这样的路径:

 path('/',views.home)

请帮助或指导我了解Django 3.1.1的最新指南。

编辑以响应@pygeek的请求:

我的urls.py的内容

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/',admin.site.urls),path('about/',views.about),path('/',views.home)
]

settings.py中我的应用程序数组的内容

INSTALLED_APPS = [
    'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',]

还有项目树:

.
└── RemoveBigFile
    ├── RBF1module
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── apps.py
    │   ├── migrations
    │   │   └── __init__.py
    │   ├── models.py
    │   ├── tests.py
    │   └── views.py
    ├── RemoveBigFile
    │   ├── __init__.py
    │   ├── __pycache__
    │   │   ├── __init__.cpython-38.pyc
    │   │   ├── settings.cpython-38.pyc
    │   │   ├── urls.cpython-38.pyc
    │   │   ├── views.cpython-38.pyc
    │   │   └── wsgi.cpython-38.pyc
    │   ├── asgi.py
    │   ├── settings.py
    │   ├── urls.py
    │   ├── views.py
    │   └── wsgi.py
    ├── RemoveBigFile.sublime-project
    ├── RemoveBigFile.sublime-workspace
    ├── db.sqlite3
    └── manage.py

解决方法

3.1。 django使用空引号

chmatch

用于首页而不是正则表达式

'' 

或斜杠

^$

由于@pygeek的贡献,我的代码在urls.py中如下所示:

/

,效果很好。我在以下链接的示例代码中找到了响应: docs.djangoproject.com/en/3.1/topics/http/urls

,

您可以使用HttpResponse,但是我发现渲染页面更好。这是一个快速示例。

# urls.py
from django.urls import path
from appname import views

urlpatterns = [
   path('',views.index,name='index')
]
# views.py
from django.shortcuts import render

def index(request):
   return render(request,'index.html')

当请求一个空的URL路径时,将触发此视图。在开发环境中,它将是:http:// localhost:8000 / 假设您还在项目根目录中创建了一个模板目录。您可以在settings.py中进行验证。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR / 'templates'],'APP_DIRS': True,'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},]

记下指向基础目录的“ DIRS”,然后寻找一个名为“ templates”的目录。此目录将是调用视图时呈现的模板的主目录。在views.py中注意'index.html',这是调用函数时视图将呈现的模板。

另一个要点。对于您用python manage.py startapp appname创建的每个应用,都应在该应用目录中创建一个名为urls.py的python文件。为了使它起作用,您应该修改主urls.py使其看起来像这样:

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('',include('appname.urls')),path('admin/',admin.site.urls),]