当前位置:  首页>> 技术小册>> Django框架入门指南

第一个Django项目

在《Django框架入门指南》中,“第一个Django项目”这一章是引领读者踏入Django世界的关键一步。通过亲手创建一个简单的Django项目,你将掌握Django框架的基本结构、项目与应用的创建方法、以及如何使用Django自带的开发服务器来运行你的项目。下面,我们将一步步引导你完成这个过程。

一、环境准备

在开始之前,请确保你的计算机上已安装了Python和pip(Python的包管理工具)。Django支持Python 3.x版本(具体版本请参考Django官方文档,以获取最新的兼容性信息)。

  1. 安装Python:如果你还没有安装Python,可以从Python官网(https://www.python.org/downloads/)下载并安装。

  2. 安装Django:打开命令行工具(在Windows上是CMD或PowerShell,Mac和Linux上是Terminal),输入以下命令来安装Django:

    1. pip install django

    安装完成后,你可以通过运行django-admin --version来检查Django是否安装成功,以及安装的版本。

二、创建项目

Django项目是一系列Django应用的集合,以及一个用于管理这些应用的项目级设置的集合。现在,我们将创建一个新的Django项目。

  1. 创建项目:在命令行中,导航到你希望存放Django项目的目录,然后运行以下命令来创建一个名为myproject的新项目(你可以根据需要更改项目名称):

    1. django-admin startproject myproject

    这个命令会在当前目录下创建一个名为myproject的文件夹,里面包含了Django项目的初始结构,包括一些默认的文件和文件夹,如manage.pymyproject文件夹(包含项目的设置文件settings.py等)。

  2. 了解项目结构

    • 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)等。现在,我们来创建一个简单的应用。

  1. 创建应用:在项目目录下(即与manage.py同级的目录),运行以下命令来创建一个名为polls的新应用:

    1. python manage.py startapp polls

    这将创建一个名为polls的文件夹,包含一些默认的文件和文件夹,如models.py(用于定义数据库模型)、views.py(用于定义视图函数)、admin.py(用于定义Django管理界面的内容)、migrations/(用于存放数据库迁移文件)等。

  2. 注册应用:为了让Django知道我们的polls应用,需要在项目的设置文件中注册它。打开myproject/settings.py,在INSTALLED_APPS列表中添加'polls'

    1. INSTALLED_APPS = [
    2. ...
    3. 'polls',
    4. ]

四、定义模型

Django是一个高级Python Web框架,它鼓励快速开发和干净、实用的设计。Django遵循MVC(模型-视图-控制器)设计模式的变种,称为MVT(模型-视图-模板)。首先,我们来定义一个简单的模型。

  1. 编辑模型:打开polls/models.py,定义一个表示民意调查的模型。假设我们想要一个简单的民意调查应用,可以创建和显示问题,每个问题可以有多个选项,用户可以投票给这些选项中的一个。

    1. from django.db import models
    2. class Question(models.Model):
    3. question_text = models.CharField(max_length=200)
    4. pub_date = models.DateTimeField('date published')
    5. def __str__(self):
    6. return self.question_text
    7. class Choice(models.Model):
    8. question = models.ForeignKey(Question, on_delete=models.CASCADE)
    9. choice_text = models.CharField(max_length=200)
    10. votes = models.IntegerField(default=0)
    11. def __str__(self):
    12. return self.choice_text

    这里定义了两个模型:QuestionChoice。每个Question可以有多个Choice,通过外键关系实现。

  2. 迁移数据库:为了让Django知道我们的模型更改,并据此更新数据库,我们需要运行迁移命令。首先,生成迁移文件:

    1. python manage.py makemigrations

    然后,应用这些迁移来更改数据库:

    1. python manage.py migrate

五、创建视图

视图函数是Django应用的核心,它们负责处理Web请求并返回Web响应。现在,我们来为polls应用创建一些基本的视图。

  1. 编辑视图:打开polls/views.py,添加一些视图函数来处理民意调查数据的显示和提交。

    1. from django.shortcuts import render
    2. from .models import Question
    3. def index(request):
    4. latest_question_list = Question.objects.order_by('-pub_date')[:5]
    5. context = {'latest_question_list': latest_question_list}
    6. return render(request, 'polls/index.html', context)
    7. # 你可以继续添加其他视图函数,如显示单个问题、提交投票等。
  2. 创建模板:视图函数需要渲染模板来生成HTML。在polls目录下创建一个名为templates的文件夹(如果还没有的话),并在其中创建一个polls子文件夹(为了保持模板的组织结构)。然后,在polls/templates/polls/目录下创建index.html模板文件,并添加一些基本的HTML代码来显示问题列表。

六、配置URL

现在,我们需要将视图函数与URL模式关联起来,这样用户就可以通过访问特定的URL来看到我们定义的视图了。

  1. 编辑URL配置:打开myproject/urls.py(项目的URL配置文件),引入include函数来包含polls应用的URL配置。然后,在polls应用目录下创建一个urls.py文件,并定义该应用的URL模式。

    polls/urls.py中:

    1. from django.urls import path
    2. from . import views
    3. urlpatterns = [
    4. path('', views.index, name='index'),
    5. # 可以继续添加其他URL模式
    6. ]

    myproject/urls.py中,包含polls应用的URL配置:

    1. from django.contrib import admin
    2. from django.urls import include, path
    3. urlpatterns = [
    4. path('admin/', admin.site.urls),
    5. path('polls/', include('polls.urls')),
    6. ]

七、运行开发服务器

一切准备就绪后,你可以使用Django自带的开发服务器来查看你的应用了。

  1. 运行服务器:在项目根目录下(即包含manage.py的目录),运行以下命令来启动开发服务器:

    1. python manage.py runserver

    默认情况下,服务器会运行在http://127.0.0.1:8000/。你可以通过浏览器访问这个地址来看到你的Django项目。

  2. 访问应用:在浏览器中访问http://127.0.0.1:8000/polls/,你应该能看到index视图渲染的页面,显示了你定义的问题列表。

至此,你已经成功创建了第一个Django项目,并创建了一个简单的民意调查应用。这仅仅是Django强大功能的冰山一角,接下来,你可以继续探索Django的模板系统、表单处理、用户认证、数据库迁移等更多高级功能。祝你在Django的旅程中取得丰硕的成果!


该分类下的相关小册推荐: