在《Django框架入门指南》中,“第一个Django项目”这一章是引领读者踏入Django世界的关键一步。通过亲手创建一个简单的Django项目,你将掌握Django框架的基本结构、项目与应用的创建方法、以及如何使用Django自带的开发服务器来运行你的项目。下面,我们将一步步引导你完成这个过程。
在开始之前,请确保你的计算机上已安装了Python和pip(Python的包管理工具)。Django支持Python 3.x版本(具体版本请参考Django官方文档,以获取最新的兼容性信息)。
安装Python:如果你还没有安装Python,可以从Python官网(https://www.python.org/downloads/)下载并安装。
安装Django:打开命令行工具(在Windows上是CMD或PowerShell,Mac和Linux上是Terminal),输入以下命令来安装Django:
pip install django
安装完成后,你可以通过运行django-admin --version
来检查Django是否安装成功,以及安装的版本。
Django项目是一系列Django应用的集合,以及一个用于管理这些应用的项目级设置的集合。现在,我们将创建一个新的Django项目。
创建项目:在命令行中,导航到你希望存放Django项目的目录,然后运行以下命令来创建一个名为myproject
的新项目(你可以根据需要更改项目名称):
django-admin startproject myproject
这个命令会在当前目录下创建一个名为myproject
的文件夹,里面包含了Django项目的初始结构,包括一些默认的文件和文件夹,如manage.py
、myproject
文件夹(包含项目的设置文件settings.py
等)。
了解项目结构:
manage.py
:Django的命令行工具,用于执行各种项目级命令,如运行服务器、进行数据库迁移等。myproject/
:项目的实际Python包,包含项目的配置和应用的设置。__init__.py
:让Python将此目录视为一个Python包。settings.py
:包含项目的所有配置信息,如数据库配置、应用列表等。urls.py
:项目的URL声明,Django的路由系统。wsgi.py
:WSGI兼容的Web服务器入口,用于部署。Django项目可以包含多个应用,每个应用都是一个Python包,遵循Django的特定约定。应用可以包含模型(Models)、视图(Views)、模板(Templates)和表单(Forms)等。现在,我们来创建一个简单的应用。
创建应用:在项目目录下(即与manage.py
同级的目录),运行以下命令来创建一个名为polls
的新应用:
python manage.py startapp polls
这将创建一个名为polls
的文件夹,包含一些默认的文件和文件夹,如models.py
(用于定义数据库模型)、views.py
(用于定义视图函数)、admin.py
(用于定义Django管理界面的内容)、migrations/
(用于存放数据库迁移文件)等。
注册应用:为了让Django知道我们的polls
应用,需要在项目的设置文件中注册它。打开myproject/settings.py
,在INSTALLED_APPS
列表中添加'polls'
:
INSTALLED_APPS = [
...
'polls',
]
Django是一个高级Python Web框架,它鼓励快速开发和干净、实用的设计。Django遵循MVC(模型-视图-控制器)设计模式的变种,称为MVT(模型-视图-模板)。首先,我们来定义一个简单的模型。
编辑模型:打开polls/models.py
,定义一个表示民意调查的模型。假设我们想要一个简单的民意调查应用,可以创建和显示问题,每个问题可以有多个选项,用户可以投票给这些选项中的一个。
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
这里定义了两个模型:Question
和Choice
。每个Question
可以有多个Choice
,通过外键关系实现。
迁移数据库:为了让Django知道我们的模型更改,并据此更新数据库,我们需要运行迁移命令。首先,生成迁移文件:
python manage.py makemigrations
然后,应用这些迁移来更改数据库:
python manage.py migrate
视图函数是Django应用的核心,它们负责处理Web请求并返回Web响应。现在,我们来为polls
应用创建一些基本的视图。
编辑视图:打开polls/views.py
,添加一些视图函数来处理民意调查数据的显示和提交。
from django.shortcuts import render
from .models import Question
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
context = {'latest_question_list': latest_question_list}
return render(request, 'polls/index.html', context)
# 你可以继续添加其他视图函数,如显示单个问题、提交投票等。
创建模板:视图函数需要渲染模板来生成HTML。在polls
目录下创建一个名为templates
的文件夹(如果还没有的话),并在其中创建一个polls
子文件夹(为了保持模板的组织结构)。然后,在polls/templates/polls/
目录下创建index.html
模板文件,并添加一些基本的HTML代码来显示问题列表。
现在,我们需要将视图函数与URL模式关联起来,这样用户就可以通过访问特定的URL来看到我们定义的视图了。
编辑URL配置:打开myproject/urls.py
(项目的URL配置文件),引入include
函数来包含polls
应用的URL配置。然后,在polls
应用目录下创建一个urls.py
文件,并定义该应用的URL模式。
在polls/urls.py
中:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
# 可以继续添加其他URL模式
]
在myproject/urls.py
中,包含polls
应用的URL配置:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls')),
]
一切准备就绪后,你可以使用Django自带的开发服务器来查看你的应用了。
运行服务器:在项目根目录下(即包含manage.py
的目录),运行以下命令来启动开发服务器:
python manage.py runserver
默认情况下,服务器会运行在http://127.0.0.1:8000/
。你可以通过浏览器访问这个地址来看到你的Django项目。
访问应用:在浏览器中访问http://127.0.0.1:8000/polls/
,你应该能看到index
视图渲染的页面,显示了你定义的问题列表。
至此,你已经成功创建了第一个Django项目,并创建了一个简单的民意调查应用。这仅仅是Django强大功能的冰山一角,接下来,你可以继续探索Django的模板系统、表单处理、用户认证、数据库迁移等更多高级功能。祝你在Django的旅程中取得丰硕的成果!