Django 2.1.6.学习初级篇(1)

目录

No. 1,创建一个项目

No. 2 ,创建一个polls 应用

No. 3 开始写第一个视图


No. 1创建一个项目

如果这是您第一次使用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进行部署。

 

No. 2 ,创建一个polls 应用

您的应用程序可以位于Python路径上的任何位置。

在本教程中,我们将在管理器旁边创建投票应用程序。这样它就可以作为自己的顶级模块导入,而不是作为mysite的子模块。要创建应用程序,请确保处于与manage相同的目录中。输入以下命令:

$ python manage.py startapp polls

这样创建完成一个目录,其布局如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

No. 3 开始写第一个视图

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)

你可能感兴趣的:(django入门)