创建一个Django项目
作者:向前的步伐 / 发表: 2019年7月19日 22:22 / 更新: 2019年7月19日 22:55 / django / 阅读量:612
创建项目
在创建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地址。