个人博客

创建一个Django项目

创建项目

在创建Django项目的时候,需要一些初始化设置。你只需要用代码自动生成一个Django项目,就可以包括项目需要的设置项集合,包括数据库配置、Django配置和应用程序配置。

打开命令行,在命令行上输入以下命令:

django-admin startproject mysite

这行代码会在前目录下创建一个mysite目录,我们可以看到目录里面的相关文件:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

这些目录和文件的用处:

最外层的mysite/:根目录是你项目的容器,Django不关心它的名字,你可以重名为任意的名字。

manage.py:一个让你用各种方式管理Django项目的命令行工具,可以使用python manage.py help查看可使用的命令。

里面一层的mysite/:该目录包含你的项目文件,它是一个python的包。它可以让你在其他的文件需要使用到它里面的文件时,直接使用它的包名加文件名,如:mysite.urls。

mysite/init.py:一个空文件,让这个目录成为python的包。

mysite/settings.py:Django项目的配置文件。

mysite/urls.py:Django的路由规则,访问你web服务器的请求,都是通过它找到对应的视图函数。

mysite/wsgi.py:作为你的项目运行在WSGI兼容web服务器上的入口。

启动服务器

启动Django服务器,使用命令:

python manage.py runserver

这个时候访问http://127.0.0.1:8000,你将会看到一个“祝贺”页面,随着一只火箭发射,服务器已经运行了。

默认情况下runserve命令会将服务器设置为监听本机内部的8000端口。

如果你想换服务器的监听端口,可以使用命令:

python manage.py runserver 8080

如果你想修改监听的IP,监听所有IP请求,可以使用命令:

python manage.py runserver 0.0.0.0:8000

创建一个应用

在Django中,每一个应用都是一个python包,并遵循着相同的约定。Django自带一个工具,可以帮你生成应用的基础目录和文件结构,这样可以快速的进行开发。

打开命令行,cd到项目manage.py文件所在的位置,使用命令来创建一个应用:

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,写入以下代码:

# polls/views.py
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello world!")

这是Django最简单的视图,要想在浏览器上可以访问,我们还需要配置URL映射器。

在polls目录里新建一个urls.py文件,然后写入以下代码:

# polls/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

接下来,在根的urls.py文件中指定我们新建的polls.urls模块,在mysite/urls.py文件中写入如下代码:

# mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

函数include()允许引用其他的URLconfs,当URL路径匹配上polls/之后,就会截断与此项匹配的URL部分,将剩下的部分传送到下个URLconfs进一步处理。

现在,我们再次启动Django服务器,使用命令:

python manage.py runserver

这个时候通过浏览器访问http://127.0.0.1:8000/polls/就可以看到“hello world!”。

函数path()具有四个参数,两个必须参数:route和view,两个可选参数:kwargs和name。

path() 参数: route

route是一个匹配URL的规则,当Django获取到一个请求时,它会从urlpatterns的第一个项开始,按顺序依次匹配列表中的项,直到找到匹配的项。

path() 参数: view

当Django找到一个匹配的项之后,会调用对用的视图函数,并传入一个HttpRequest对象作为第一个参数,被捕获的参数以关键字参数的形式传入。

path() 参数: kwargs

任意个关键字参数可以作为一个字典传递给目标视图函数。

path() 参数: name

为你的URL取名能使你在Django的其他地方使用到它,特别是在模板中,这个特性可以允许你只修改一个文件就能全局修改到模板中所有的URL地址。

相关标签
回到顶部