在当今的 Web 开发领域,Django 以其"内置电池"的设计理念和高效的开发模式,成为众多开发者的首选框架之一。无论是搭建小型博客系统,还是构建复杂的企业级应用,Django 都能提供完善的解决方案。本文将带领你从零开始,逐步完成一个 Django 框架项目的创建,让你快速上手 Django 开发。

一、环境准备

在创建 Django 项目之前,我们需要确保开发环境中已经安装了 Python。Django 对 Python 版本有一定要求,目前主流版本支持 Python 3.6 及以上,建议使用 Python 3.8 - 3.11 之间的版本,以获得最佳兼容性和性能。

1. 安装 Python

如果你还没有安装 Python,可以前往 Python 官方网站 下载对应操作系统的安装包(Windows、macOS 或 Linux)。安装过程中,记得勾选 “Add Python to PATH” 选项,这样可以方便在命令行中使用 Python 命令。

2. 安装虚拟环境(可选但推荐)

虚拟环境能够为每个项目创建独立的 Python 运行环境,避免不同项目之间的依赖冲突。常用的虚拟环境工具有 venv(Python 内置)和 virtualenv

使用 venv 创建虚拟环境

在命令行中进入你想要创建项目的目录,然后执行以下命令:

1
python -m venv myenv

这将在当前目录下创建一个名为 myenv 的虚拟环境。激活虚拟环境的命令因操作系统而异:

在 Windows 上:

1
myenv\Scripts\activate

在 macOS 和 Linux 上:

1
source myenv/bin/activate

激活虚拟环境后,命令行提示符前面会出现虚拟环境的名称,例如 (myenv) your_username@your_machine:~/project_directory$,表示当前处于虚拟环境中。

使用 virtualenv 创建虚拟环境

首先安装 virtualenv:

1
pip install virtualenv

然后创建虚拟环境:

1
virtualenv myenv

激活方式与 venv 类似:

在 Windows 上:

1
myenv\Scripts\activate

在 macOS 和 Linux 上:

1
source myenv/bin/activate

3. 安装 Django

在激活的虚拟环境中,使用 pip 命令安装 Django:

1
pip install django

安装完成后,可以通过以下命令检查 Django 是否安装成功以及查看版本信息:

1
django-admin --version

二、创建 Django 项目

当环境准备就绪后,就可以开始创建 Django 项目了。

1. 使用命令创建项目

在命令行中,确保处于你希望存放项目的目录,然后执行以下命令:

1
django-admin startproject myproject

这里的 myproject 是项目的名称,你可以根据实际需求替换为其他名称。执行该命令后,会在当前目录下生成一个名为 myproject 的项目目录,其结构如下:

1
2
3
4
5
6
7
8
myproject/
myproject/
__init__.py
asgi.py
settings.py
urls.py
wsgi.py
manage.py

文件说明:

文件 说明
manage.py 一个命令行工具,用于与 Django 项目进行交互,例如创建应用、运行开发服务器、执行数据库迁移等
myproject/ 目录 包含项目的配置文件
__init__.py 一个空文件,告诉 Python 该目录是一个 Python 包
asgi.py ASGI(异步服务器网关接口)配置文件,用于部署异步 Django 应用
settings.py 项目的配置文件,包含数据库设置、应用注册、静态文件配置等重要信息
urls.py URL 配置文件,定义了项目的 URL 模式以及对应的视图函数
wsgi.py WSGI(Web 服务器网关接口)配置文件,用于部署 Django 应用到生产环境的 Web 服务器

2. 运行开发服务器

进入项目目录 myproject,使用以下命令启动 Django 开发服务器:

1
python manage.py runserver

默认情况下,开发服务器会在 http://127.0.0.1:8000/ 地址上运行。打开浏览器,访问该地址,如果看到 Django 默认的欢迎页面,说明项目创建成功。

如果希望修改开发服务器的端口,可以在命令中指定,例如:

1
python manage.py runserver 8080

这将把开发服务器运行在 http://127.0.0.1:8080/ 地址上。

三、创建 Django 应用

一个 Django 项目通常由多个应用组成,每个应用负责特定的功能模块,比如博客项目中的文章管理、用户管理等。

1. 创建应用

在项目目录 myproject 下,执行以下命令创建一个名为 myapp 的应用:

1
python manage.py startapp myapp

执行命令后,会生成一个名为 myapp 的应用目录,其结构如下:

1
2
3
4
5
6
7
8
9
myapp/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
migrations/
__init__.py

文件说明:

文件 说明
admin.py 用于注册模型到 Django 管理后台,方便进行数据管理
apps.py 应用的配置文件,定义应用的相关信息
models.py 定义数据模型,用于与数据库进行交互
tests.py 编写单元测试的文件,用于测试应用的功能
views.py 定义视图函数,处理用户请求并返回响应
migrations/ 目录 用于存放数据库迁移文件,记录模型结构的变更历史

2. 注册应用

创建应用后,需要在项目的 settings.py 文件中注册该应用,以便 Django 能够识别和管理它。在 INSTALLED_APPS 列表中添加应用的名称:

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 添加你的应用
]

四、配置项目

Django 项目的配置主要在 settings.py 文件中完成,下面介绍一些常见的配置项。

1. 数据库配置

Django 默认使用 SQLite 数据库,如果你需要使用其他数据库,如 MySQL、PostgreSQL 等,需要进行相应的配置。

配置 MySQL 数据库

首先安装 mysqlclient 库:

1
pip install mysqlclient

然后在 settings.py 中修改数据库配置:

1
2
3
4
5
6
7
8
9
10
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'root',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}

mydatabaserootpassword 替换为实际的数据库名称、用户名和密码。

配置 PostgreSQL 数据库

安装 psycopg2 库:

1
pip install psycopg2

settings.py 中修改数据库配置:

1
2
3
4
5
6
7
8
9
10
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'postgres',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}

同样,将相关参数替换为实际值。

2. 静态文件配置

静态文件(如 CSS、JavaScript、图片等)是 Web 应用不可或缺的部分。在 settings.py 中配置静态文件的存放路径:

1
2
3
4
5
6
7
STATIC_URL = 'static/'

STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

配置说明:

配置项 说明
STATIC_URL 定义了静态文件在浏览器中访问的 URL 前缀
STATICFILES_DIRS 指定了项目中存放静态文件的目录
STATIC_ROOT 用于收集静态文件的目录,在部署到生产环境时会用到

3. 时区和语言配置

根据项目需求,设置时区和语言:

1
2
3
4
5
LANGUAGE_CODE = 'zh-hans'  # 中文简体
TIME_ZONE = 'Asia/Shanghai' # 上海时区
USE_I18N = True
USE_L10N = True
USE_TZ = True

五、编写视图和 URL

1. 编写视图函数

myapp/views.py 文件中编写视图函数,例如:

1
2
3
4
from django.http import HttpResponse

def index(request):
return HttpResponse("Hello, Django!")

这里定义了一个简单的视图函数 index,当用户访问对应的 URL 时,会返回 “Hello, Django!” 的响应。

2. 配置 URL

myapp 目录下创建一个 urls.py 文件(如果不存在),用于定义应用的 URL 模式:

1
2
3
4
5
6
from django.urls import path
from . import views

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

然后在项目的 myproject/urls.py 文件中,将应用的 URL 配置包含进来:

1
2
3
4
5
6
7
from django.contrib import admin
from django.urls import path, include

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

这样,当用户访问 http://127.0.0.1:8000/myapp/ 时,就会调用 myapp/views.py 中的 index 视图函数。

六、数据库迁移

如果在 models.py 中定义了数据模型,需要进行数据库迁移操作,将模型结构同步到数据库中。

1. 生成迁移文件

在项目目录 myproject 下,执行以下命令:

1
python manage.py makemigrations myapp

这将根据 myapp/models.py 中的模型定义,在 myapp/migrations/ 目录下生成迁移文件。

2. 执行迁移

执行以下命令将迁移应用到数据库:

1
python manage.py migrate

如果是首次迁移,该命令会创建 Django 默认的一些数据库表,如用户认证相关的表等。后续每次修改模型后,都需要重复这两个步骤来更新数据库结构。

七、总结

至此,一个基本的 Django 框架项目就创建完成了。你可以在此基础上继续扩展功能,添加更多的应用、视图、模型和模板,打造出满足需求的 Web 应用。

下一步建议

  1. 学习 Django 的模板系统,创建更丰富的页面
  2. 深入了解 Django 的 ORM(对象关系映射),掌握数据操作
  3. 探索 Django 的表单系统,实现用户输入和验证
  4. 学习 Django 的认证系统,添加用户登录注册功能
  5. 了解 Django 的中间件机制,实现请求处理的各种功能

Django 官方文档提供了非常详细的学习资料,建议在实践过程中多查阅官方文档:Django 官方文档