【Django系列】开始你的第一个应用
本文来自于官方文档
Django系列将持续更新,并将用自己的实际项目系统来作为例子。Django版本:3.0。
创建一个项目
django-admin startproject mysite
这将会创建一个名为mysite的项目。
它的目录结构如下:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
其中manage.py是一个和Django项目进行命令行交互的文件,在里面的mysite文件夹是Python包,settings.py用来配置Django程序,urls.py是Django项目的URL声明,asgi.py是asgi服务器入口,wsgi.py是WSGI服务器入口。
开发环境下的服务器
python manage.py runserver
你可以使用python manage.py runserver 8080
来指定端口。请注意千万不要将它用于生产环境中。
开发模式下会自动加载你的更改,你不需要重启服务器。
创建应用程序
项目和应用之间有什么区别?应用程序是执行某项操作的Web应用程序,例如Weblog系统,公共记录数据库或小型民意调查应用程序。项目是特定网站的配置和应用程序的集合。一个项目可以包含多个应用程序。一个应用程序可以在多个项目中。
python manage.py startapp polls
创建名为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.")
这是Django中最简单的视图。要调用该视图,我们需要将其映射到URL-为此,我们需要一个URLconf。
要在民意调查目录中创建URLconf,请创建一个名为urls.py的文件。
polls/urls.py
创建URL配置。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
下一步是将根URLconf指向polls.urls模块。在mysite/urls.py中,为django.urls.include添加一个import,并在urlpatterns列表中插入一个include().
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()时,它都会砍掉匹配到该点的URL的任何部分,并将剩余的字符串发送到包含的URLconf中以进行进一步处理。
Go to http://localhost:8000/polls/
in your browser, and you should see the text “Hello, world. You’re at the polls index.”, which you defined in the index view.
path()的四个参数
two required: route and view, and two optional: kwargs, and name.
route
route是包含URL模式的字符串。在处理请求时,Django从urlpatterns中的第一个模式开始,然后沿着列表的方式前进,将请求的URL与每个模式进行比较,直到找到匹配的URL。
view
当Django找到匹配的模式时,它将使用HttpRequest对象作为第一个参数,并从路由中获取的所有“captured”值作为关键字参数来调用指定的视图函数。
kwargs
可以在字典中将任意关键字参数传递给目标视图。在本教程中,我们不会使用Django的此功能。
name
命名URL可以使您在Django中的其他地方(尤其是在模板内部)明确地引用它。