目录
No. 1,创建一个项目
No. 2 ,创建一个polls 应用
No. 3 开始写第一个视图
如果这是您第一次使用Django,则必须进行一些初始设置。也就是说,您需要自动生成一些建立Django项目的代码——Django实例的设置集合,包括数据库配置、特定于Django的选项和特定于应用程序的设置。从命令行,cd到您想要存储代码的目录中,然后运行以下命令:
$ django-admin startproject mysite
这将在当前目录中创建一个mysite目录.
请注意
您需要避免以内置Python或Django组件命名项目。特别是,这意味着您应该避免使用django(它将与django本身冲突)或test(它与内置Python包冲突)这样的名称。
让我们看看startproject创建了什么:
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
确定你的django安装成功,在终端上输入python manage.py runserver,正常的可以看到:
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
January 11, 2019 - 15:50:53
Django version 2.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
改变端口:
默认情况下,runserver命令在端口8000上启动内部IP上的开发服务器。如果您想更改服务器的端口,可以将其作为命令行参数传递。例如,这个命令在端口8080上启动服务器:
python manage.py runserver 8080
如果您想更改服务器的IP,请将其与端口一起传递。例如,要监听所有可用的公共ip(如果您正在流浪或想在网络上的其他计算机上展示您的工作,这是很有用的),请使用:
python manage.py runserver 0:8000
0是0.0.0.0的快捷方式。开发服务器的完整文档可以在runserver引用中找到。
说一下上述文件干什么用:
外部的mysite/根目录只是项目的容器。它的名字对Django来说并不重要;您可以将其重命名为您喜欢的任何名称。
manage.py:命令行实用程序,它允许您以各种方式与Django项目进行交互。您可以阅读有关manage.py:的所有细节中在django-admin和manage .py。
内部的mysite/目录是项目的实际Python包。它的名称是您需要用来导入其中任何内容的Python包名称(例如mysite.urls)。
mysite / __init__:一个空文件,它告诉Python这个目录应该被认为是一个Python包。如果您是Python初学者,请阅读官方Python文档中有关包的更多信息。
mysite /setting.py:这个Django项目的设置/配置。Django设置将告诉您设置是如何工作的。
mysite / url.py:这个Django项目的URL声明;一个由django支持的站点的“目录”。
mysite / wsgi.py: wsgi兼容的web服务器为您的项目服务的入口点。有关更多细节,请参见如何使用WSGI进行部署。
您的应用程序可以位于Python路径上的任何位置。
在本教程中,我们将在管理器旁边创建投票应用程序。这样它就可以作为自己的顶级模块导入,而不是作为mysite的子模块。要创建应用程序,请确保处于与manage相同的目录中。输入以下命令:
$ python manage.py startapp 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。
要在polls目录中创建URLconf,请创建一个名为url .py的文件。你的应用程序目录现在应该是:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py urls.py views.py
在polls/urls.py文件中,包含以下代码
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
下一步是将root URLconf指向polls.url模块。在mysite / url.py,为django.urls添加一个导入。在urlpatterns列表中插入include(),这样就有:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
“urlpatterns”列表将url路由到视图。有关详情,请参阅:https://docs.djangoproject.com/en/2.1/topics/http/urls/
现在已经将索引视图连接到URLconf中。让我们验证它的工作,运行以下命令:
$ python manage.py runserver
在浏览器中转到http://localhost:8000/polls/,应该会看到文本“Hello, world”。,这是您在polls应用中的views.py的index函数中定义的。
No. 4 path()函数解析
path()函数传递了四个参数,两个是必需的:route和view,两个是可选的:kwargs和name。在这一点上,有必要回顾一下这些论证的目的。
path()
argument: route
route是一个包含URL模式的字符串。在处理请求时,Django从urlpatterns中的第一个模式开始,并沿着列表向下移动,将请求的URL与每个模式进行比较,直到找到一个匹配的模式。模式不搜索GET和POST参数,也不搜索域名。例如,在https://www.example.com/myapp/的请求中,URLconf将查找myapp/。在一个请求到https://www.example.com/myapp/?页面=3,URLconf也会查找myapp/。
path()
argument: view
当Django找到匹配的模式时,它会调用指定的视图函数,将HttpRequest对象作为第一个参数,并将路由中“捕获”的任何值作为关键字参数。后面我们会举个例子。
path()
argument: kwargs
可以在字典中将任意关键字参数传递给目标视图。在本此学习中,我们不会使用Django的这个特性。
path()
argument: name
命名URL使您可以从Django的其他地方,特别是在模板中,明确地引用它。这个强大的特性允许您在只接触单个文件的情况下对项目的URL模式进行全局更改。
当您熟悉基本的请求和响应流时,请阅读Django 2.1.6.学习初级篇(2)