我的第一个 Django 应用程序 - 不知道如何创建主页
My first Django App - don't know how to create a homepage
我已经学习 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
您可以使用 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),
]
3.1。 django 使用空引号
''
用于主页而不是正则表达式
^$
或斜线
/
感谢@pygeek 的贡献,我的代码在 urls.py 中看起来像这样:
path('', views.home),
并且工作正常。我在以下 link 中的示例代码中找到了响应:
docs.djangoproject.com/en/3.1/topics/http/urls
我已经学习 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
您可以使用 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),
]
3.1。 django 使用空引号
''
用于主页而不是正则表达式
^$
或斜线
/
感谢@pygeek 的贡献,我的代码在 urls.py 中看起来像这样:
path('', views.home),
并且工作正常。我在以下 link 中的示例代码中找到了响应: docs.djangoproject.com/en/3.1/topics/http/urls