目录
创建project
开发服务器
创建 Polls app
写view
如果这是您第一次使用Django,那么您将不得不处理一些初始设置。也就是说,您需要自动生成一些代码来建立Django项目——Django实例的一系列设置,包括数据库配置、django-特异性选项和特定于应用程序的设置
django-admin startproject mysite
这将在当前目录中创建mysite目录。如果它不起作用,就会看到运行django-admin的问题。
Let’s look at what startproject created:
外部mysite
根目录只是项目的容器。它的名字对Django来说并不重要;你可以把它重命名为你喜欢的任何东西。
manage.py:
一个命令行实用程序,它允许您以各种方式与Django项目进行交互。你可以阅读有关管理的所有细节。在django-admin.py和managepy中。
内部mysite/
是您的项目的实际Python包。它的名字是Python包的名称,您需要使用它来导入它里面的任何东西(例如mysite.url)。
mysite/__init__.py:
一个空文件告诉Python这个目录应该被认为是一个Python包。
mysite/settings.py:
为这个Django项目设置/配置。Django设置将告诉您设置是如何工作的。
mysite/urls.py:
这个Django项目的URL声明; 您的django-驱动站点的“目录”。您可以在URL分派器中了解更多关于URL的内容。
mysite/wsgi.py:
与wsgi兼容的web服务器的入口点
让我们来验证Django项目的工作原理。如果您还没有的话,请更改外层mysite目录,并运行以下命令:
python manage.py runserver 9000
您在Django中编写的每个应用程序都包含遵循一定约定的Python包。Django提供了一个实用程序,它可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不是创建目录。
To create your app, make sure you’re in the same directory as manage.py and type this command:
python manage.py startapp polls
Let’s write the first view. Open the file polls/views.py and put the following Python code in it:
polls/views.py
这是Django中最简单的视图。为了调用视图,我们需要将它映射到一个URL——为此我们需要一个URLconf。要在投票目录中创建URLconf,创建一个名为urls.py的文件。你的应用程序目录现在应该是这样的:
The next step is to point the root URLconf at the polls.urls module. In mysite/urls.py, add an import for django.urls.include and insert an include() in the urlpatterns list, so you have:
include()函数允许引用其他urlconf。每当Django遇到include()时,它就会将URL的任何部分与该点相匹配,并将剩下的字符串发送到包含的URLconf以进行进一步处理。
在浏览器中使用http://localhost:8000/polls/,您应该看到文本“Hello, world. You’re at the polls index.”,。你在索引视图中定义的。
path()函数传递四个参数,两个参数:route , views,两个可选:kwargs和name。
path() argument: route
route是一个包含URL模式的字符串。当处理一个请求时,Django从urlpattern的第一个模式开始,然后沿着列表向下,将所请求的URL与每个模式进行比较,直到找到匹配的URL为止。
模式不搜索GET和POST参数,或域名。例如,在对https://www.example.com/myapp/的请求中,URLconf将寻找myapp/。在对https://www.example.com/myapp/?page=3,URLconf也会寻找myapp/。
path() argument: view
当Django找到一个匹配的模式时,它将指定的视图函数作为第一个参数,以及从路线中获取的任何“捕获”值作为关键字参数。我们会举个例子。
path() argument: kwargs
任意关键字参数可以在字典中传递给目标视图。
path() argument: name
命名您的URL可以让您在Django的其他地方明确地引用它,特别是在模板中。这个强大的特性允许您对项目的URL模式进行全局更改,而只涉及单个文件。