第一个django 应用[par1]
在安装好django框架后,使用django-admin startproject来建立项目:
> django-admin startproject mysite
这会在运行命令的当前目录建立一个mysite的文件夹。在建里项目时要避免使用python内建名或Django组件名字,如:django或test。
现在来看一下startproject都创建了什么,目录结构如下:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
- 最外层的mysite/是根目录,是整个项目的容器,这个名字与项目无关紧要,可以改成其它的名字。
- manage.py:是一个与Django交互的命令行工具。
- 内部的mysite/文件夹是你项目实际的python包。它的名字是python包名,需要用它来import它内部的东西。如:mysite.urls
- mysite/__init__.py:一个空文件,它告诉python“这个文件夹应该被看做是一个python包”。
- mysite/settings.py:对这个Django项目进行设置或配置。
- mysite/urls.py:对这个django项目url的声明;该站点的“目录”
- mysite/asgi.py:兼容ASGI的web服务器入口点。
- mysite/wsgi.py:兼容WSGI的web服务器入口点。
在项目中新建一个应用
> python manage.py startapp pools
它会创建一个文件夹polls,文件夹结构应该是这样的:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
现在写第一个视图polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
之后在polls目录下创建一个URLconf文件名为urls.py,其内容为:
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
]
下一步是在根RULconf中加入poll.urls模块,这时需要在mysite/urls.py中导入django.urls.include头文件,并使用include()把poll.urls模块加入到urlpatterns列表中,示例如下:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("polls/", include("polls.urls")),
path("admin/", admin.site.urls),
]
include()函数允许引用其它的URLconf文件。当django遇到include()函数时会截取请求剩余部分发送到include()包含的URLconf文件中。(如:请求的是/polls/blog/view,在上面的urlpatterns中会匹配到记录,然后将“polls/”去掉后,把blog/view传给”polls.urls”应用。)