Django 使用教程
Django 是一个高级的 Python Web 框架,采用了 MTV(Model-Template-View)设计模式,旨在帮助开发者快速构建高效、可维护的 Web 应用。它有着非常丰富的功能,包括 ORM、用户认证、表单处理、管理后台等,是构建复杂 Web 应用的理想选择。
本文将介绍如何从零开始使用 Django,创建一个简单的 Web 应用,包含环境配置、创建项目和应用、定义模型、视图和模板、路由配置等内容。
一、环境准备
1.1 安装 Python 和 Django
Django 是基于 Python 的,因此你需要先安装 Python 环境。确保安装了 Python 3.x 版本。
-
安装 Python(如果还没有安装的话):
你可以通过 Python 官网下载并安装最新版本的 Python。 -
创建虚拟环境(推荐):
虚拟环境能够帮助你管理不同项目的依赖,避免冲突。在终端中运行以下命令创建虚拟环境:
python -m venv myenv
激活虚拟环境:
- Windows:
myenv\Scripts\activate
- macOS/Linux:
source myenv/bin/activate
- Windows:
-
安装 Django:
在虚拟环境中,使用 pip 安装 Django:pip install django
1.2 检查安装是否成功
安装完成后,运行以下命令检查 Django 版本,确保安装成功:
django-admin --version
二、创建 Django 项目
2.1 创建项目
使用 Django 提供的命令行工具 django-admin
创建一个新的项目。在终端中运行以下命令:
django-admin startproject myproject
这会在当前目录下创建一个名为 myproject
的文件夹,其中包含了一些默认文件和目录结构。
项目目录结构:
myproject/
manage.py # 用于管理项目的命令行工具
myproject/ # 项目设置文件夹
__init__.py
settings.py # 项目的配置文件
urls.py # 路由配置
wsgi.py # 用于部署的 WSGI 配置
2.2 启动开发服务器
进入 myproject
文件夹,并运行开发服务器:
cd myproject
python manage.py runserver
服务器启动后,打开浏览器访问 http://127.0.0.1:8000/
,如果看到 Django 的欢迎页面,说明项目创建成功。
三、创建 Django 应用
在 Django 中,应用是构建 Web 项目的基本单元。一个 Django 项目可以包含多个应用,每个应用负责处理项目中的一个功能模块。
3.1 创建应用
在项目目录下运行以下命令来创建一个应用,例如创建一个名为 blog
的应用:
python manage.py startapp blog
这会在项目中创建一个 blog
文件夹,目录结构如下:
blog/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
3.2 注册应用
打开 myproject/settings.py
文件,找到 INSTALLED_APPS
列表,添加刚刚创建的 blog
应用:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 添加 blog 应用
]
四、定义模型(Model)
在 Django 中,模型用于定义数据结构,映射数据库表。Django 使用 ORM(对象关系映射)技术,将模型与数据库中的表进行关联。
4.1 创建模型
打开 blog/models.py
文件,定义一个简单的模型,比如 Post
,表示博客文章:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
模型 Post
包括三个字段:title
(标题)、content
(内容)和 created_at
(创建时间)。其中 CharField
和 TextField
是常用的字段类型,DateTimeField
用于存储时间。
4.2 创建数据库表
模型定义完成后,需要生成数据库表。在终端中运行以下命令:
python manage.py makemigrations
python manage.py migrate
makemigrations
会生成数据库迁移文件。migrate
会根据迁移文件创建数据库表。
五、创建视图(Views)
视图是用户请求和响应之间的桥梁,它处理请求并返回响应。在 Django 中,视图通常有两种类型:函数视图和类视图。
5.1 创建函数视图
打开 blog/views.py
文件,创建一个简单的视图函数:
from django.http import HttpResponse
from .models import Post
def index(request):
posts = Post.objects.all() # 获取所有博客文章
response = '<h1>Blog Posts</h1>'
for post in posts:
response += f'<h2>{post.title}</h2><p>{post.content}</p>'
return HttpResponse(response)
该视图函数获取所有博客文章,并将其标题和内容显示在页面上。
5.2 配置路由
打开 myproject/urls.py
文件,配置 URL 路由,将请求与视图函数关联起来:
from django.contrib import admin
from django.urls import path
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index, name='index'), # 将根 URL 映射到 index 视图
]
六、创建模板(Template)
模板用于呈现 HTML 页面,可以将动态内容与静态内容结合。在 Django 中,模板是存放在 templates
目录下的 HTML 文件。
6.1 创建模板
在 blog
应用下创建一个 templates
文件夹,并在其中创建 index.html
文件:
blog/
templates/
index.html
在 index.html
中,编写 HTML 和 Django 模板语言来显示博客文章列表:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blog</title>
</head>
<body>
<h1>Blog Posts</h1>
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
{% endfor %}
</body>
</html>
6.2 修改视图函数使用模板
修改 views.py
中的 index
视图函数,使用 Django 的 render
函数渲染模板:
from django.shortcuts import render
from .models import Post
def index(request):
posts = Post.objects.all()
return render(request, 'index.html', {'posts': posts})
七、后台管理
Django 提供了一个强大的后台管理界面,可以帮助我们管理数据。在 admin.py
中,我们需要将模型注册到 Django 管理后台。
7.1 注册模型
打开 blog/admin.py
文件,注册 Post
模型:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
7.2 启用后台管理
创建超级用户以便登录后台管理界面:
python manage.py createsuperuser
按照提示输入用户名、电子邮件和密码。
启动开发服务器后,在浏览器访问 http://127.0.0.1:8000/admin/
,使用超级用户账号登录,您可以在后台管理界面查看和管理 Post
模型的数据。
八、总结
本文介绍了 Django 的基本使用方法,包括如何创建项目和应用、定义模型、视图和模板、配置路由、以及启用后台管理界面。通过这些步骤,你可以快速构建一个简单的 Django Web 应用。
在实际开发中,你可能会遇到更多的功能需求,例如表单处理、用户认证、分页等,Django 提供了丰富的功能支持,能够帮助你应对各种需求。你可以通过官方文档深入学习和掌握 Django:Django 官方文档。