免费 Django 教程:快速构建 Web 应用
Django,一个基于 Python 的高级 Web 框架,以其“快速开发,优雅设计”的理念,深受广大开发者的喜爱。它遵循模型-模板-视图(MTV)架构模式,提供了一整套强大的工具和约定,可以帮助你迅速构建功能强大、易于维护的 Web 应用程序。
对于想要入门 Web 开发,或者正在寻找高效开发框架的 Python 开发者来说,Django 无疑是一个绝佳的选择。而本文将为你提供一个全面的免费 Django 教程,带你从零开始,快速构建一个 Web 应用,掌握 Django 的核心概念和开发流程。
一、为什么选择 Django?
在深入教程之前,让我们先了解一下选择 Django 的原因:
- 快速开发: Django 提供了大量的内置功能和组件,如 ORM、模板引擎、表单处理、认证系统等,极大地减少了重复造轮子的工作,从而加快了开发速度。
- 安全可靠: Django 内置了防御常见的 Web 安全漏洞的机制,如 CSRF、XSS、SQL 注入等,可以有效保护你的应用程序免受攻击。
- 可扩展性强: Django 架构清晰,易于扩展,可以轻松应对日益增长的用户和业务需求。
- 社区活跃: Django 拥有庞大而活跃的社区,你可以很容易地找到各种问题的解决方案和学习资源。
- 文档完善: Django 官方文档非常详细、全面,几乎涵盖了 Django 的所有方面。
- 适用性广泛: Django 可以用于构建各种类型的 Web 应用,从简单的博客和论坛,到复杂的电商平台和社交网络,都能轻松胜任。
二、准备工作
在开始之前,你需要确保你的系统已经安装了以下软件:
- Python: Django 基于 Python 开发,所以你需要安装 Python 3.6 或更高版本。你可以从 Python 官网下载并安装:https://www.python.org/downloads/
- pip: pip 是 Python 的包管理工具,用于安装和管理 Python 包。通常情况下,安装 Python 时会自动安装 pip。你可以通过在命令行输入
pip --version
来检查是否安装成功。 -
虚拟环境(建议): 强烈建议你使用虚拟环境来隔离不同项目之间的依赖关系。你可以使用
venv
或virtualenv
来创建虚拟环境。 -
使用 venv:
bash
python3 -m venv myenv
source myenv/bin/activate # Linux/macOS
myenv\Scripts\activate # Windows - 使用 virtualenv:
bash
pip install virtualenv
virtualenv myenv
source myenv/bin/activate # Linux/macOS
myenv\Scripts\activate # Windows
创建并激活虚拟环境后,所有的 pip 安装操作都只会在当前虚拟环境中生效,不会影响到全局的 Python 环境。
三、安装 Django
激活虚拟环境后,使用 pip 安装 Django:
bash
pip install django
安装完成后,你可以通过以下命令来验证 Django 是否安装成功:
bash
python -m django --version
如果成功安装,会显示 Django 的版本号。
四、创建 Django 项目
安装好 Django 之后,就可以开始创建你的第一个 Django 项目了。
在命令行中,导航到你想要创建项目的目录,然后执行以下命令:
bash
django-admin startproject myproject
这个命令会创建一个名为 myproject
的 Django 项目目录,其中包含以下文件和目录:
myproject/
: 项目根目录manage.py
: 一个命令行工具,用于管理 Django 项目myproject/
: 项目的 Python 包__init__.py
: 一个空文件,告诉 Python 该目录是一个 Python 包settings.py
: 项目的配置文件urls.py
: 项目的 URL 路由配置asgi.py
: 异步服务器配置wsgi.py
: Web 服务器配置
五、运行开发服务器
进入 myproject
目录,然后执行以下命令来启动 Django 开发服务器:
bash
python manage.py runserver
默认情况下,开发服务器会在 http://127.0.0.1:8000/
启动。打开浏览器,访问该地址,如果看到 Django 的默认欢迎页面,说明你的 Django 项目已经成功运行起来了。
六、创建 Django 应用
一个 Django 项目可以包含多个 Django 应用,每个应用负责处理特定的功能。例如,你可以创建一个博客应用、一个论坛应用等等。
要创建一个 Django 应用,可以使用以下命令:
bash
python manage.py startapp myapp
这个命令会创建一个名为 myapp
的 Django 应用目录,其中包含以下文件和目录:
myapp/
: 应用根目录__init__.py
: 一个空文件,告诉 Python 该目录是一个 Python 包admin.py
: 用于配置 Django 管理后台apps.py
: 应用的配置migrations/
: 用于管理数据库迁移models.py
: 用于定义数据模型tests.py
: 用于编写单元测试views.py
: 用于定义视图函数
七、定义数据模型 (models.py)
数据模型定义了你的应用程序需要存储的数据结构。它们通常对应于数据库中的表。
打开 myapp/models.py
文件,定义一个简单的 Article
模型:
“`python
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField(‘date published’)
def __str__(self):
return self.title
“`
在这个模型中,我们定义了三个字段:
title
: 文章标题,字符串类型,最大长度为 200。content
: 文章内容,文本类型。pub_date
: 发布日期,日期时间类型。
__str__
方法定义了模型的字符串表示形式,方便在调试和管理中使用。
八、注册应用到 settings.py
在 myproject/settings.py
文件中,找到 INSTALLED_APPS
列表,并将你的应用添加到列表中:
python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 添加你的应用
]
九、创建并应用数据库迁移
Django 使用数据库迁移来管理数据库结构的变更。在每次修改数据模型后,都需要创建并应用数据库迁移。
执行以下命令来创建数据库迁移:
bash
python manage.py makemigrations myapp
这个命令会根据你的数据模型生成迁移文件。
然后,执行以下命令来应用数据库迁移:
bash
python manage.py migrate
这个命令会将迁移文件应用到数据库,创建相应的表。
十、创建视图函数 (views.py)
视图函数负责处理用户的请求,并返回相应的响应。
打开 myapp/views.py
文件,定义一个简单的视图函数来显示文章列表:
“`python
from django.shortcuts import render
from .models import Article
def article_list(request):
articles = Article.objects.all()
return render(request, ‘myapp/article_list.html’, {‘articles’: articles})
“`
这个视图函数做了以下事情:
- 从数据库中获取所有文章。
- 将文章列表传递给一个模板文件
myapp/article_list.html
。 - 使用
render
函数将模板渲染成 HTML 响应。
十一、创建模板文件 (templates/)
模板文件用于定义 Web 页面的布局和内容。
在 myapp
目录下创建一个 templates
目录,然后在 templates
目录下创建一个 myapp
目录(与应用同名)。
在 myapp/templates/myapp/
目录下创建一个名为 article_list.html
的模板文件:
“`html
Article List
-
{% for article in articles %}
- {{ article.title }}
{% endfor %}
“`
这个模板文件使用了 Django 模板语言:
{% for article in articles %}
: 循环遍历articles
列表。{{ article.title }}
: 显示文章的标题。
十二、配置 URL 路由 (urls.py)
URL 路由将 URL 地址映射到相应的视图函数。
在 myapp
目录下创建一个名为 urls.py
的文件,并添加以下内容:
“`python
from django.urls import path
from . import views
urlpatterns = [
path(”, views.article_list, name=’article_list’),
]
“`
这个 urls.py
文件定义了一个 URL 模式:
''
: 根 URL 地址,例如http://127.0.0.1:8000/myapp/
。views.article_list
: 将根 URL 地址映射到views.py
中的article_list
视图函数。name='article_list'
: 为这个 URL 模式指定一个名称,方便在模板中引用。
然后,打开 myproject/urls.py
文件,并将 myapp
的 URL 路由包含进来:
“`python
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘myapp/’, include(‘myapp.urls’)),
]
“`
这个 urls.py
文件定义了两个 URL 模式:
admin/
: 将/admin/
URL 地址映射到 Django 管理后台。myapp/
: 将/myapp/
URL 地址映射到myapp/urls.py
中定义的 URL 路由。
十三、访问 Web 应用
重启 Django 开发服务器:
bash
python manage.py runserver
然后在浏览器中访问 http://127.0.0.1:8000/myapp/
,你应该能够看到一个包含文章标题的列表。
十四、使用 Django 管理后台
Django 提供了一个强大的管理后台,可以方便地管理你的数据模型。
要访问 Django 管理后台,首先需要创建一个超级用户:
bash
python manage.py createsuperuser
按照提示输入用户名、邮箱和密码。
然后,在浏览器中访问 http://127.0.0.1:8000/admin/
,使用你创建的超级用户登录。
要让你的 Article
模型显示在管理后台中,需要在 myapp/admin.py
文件中注册该模型:
“`python
from django.contrib import admin
from .models import Article
admin.site.register(Article)
“`
重启开发服务器,然后刷新管理后台页面,你应该能够看到 Article
模型已经显示在管理后台中。你可以在管理后台中添加、修改和删除文章。
十五、总结与进阶
恭喜你,你已经完成了你的第一个 Django Web 应用!
通过这个教程,你学习了 Django 的基本概念和开发流程,包括:
- 创建 Django 项目和应用
- 定义数据模型
- 创建数据库迁移
- 创建视图函数
- 创建模板文件
- 配置 URL 路由
- 使用 Django 管理后台
这只是 Django 的冰山一角。要深入学习 Django,可以参考以下资源:
- Django 官方文档: https://docs.djangoproject.com/
- Django 教程: https://tutorial.djangogirls.org/zh/
- Django 开源项目: 浏览 GitHub 上的 Django 开源项目,学习优秀的代码和设计模式。
进阶学习方向:
- ORM (Object-Relational Mapper): 深入学习 Django ORM,掌握更高级的数据库操作技巧,如查询优化、事务管理等。
- 模板引擎: 学习更高级的模板语言特性,如模板继承、自定义标签和过滤器等。
- 表单处理: 学习 Django 表单,可以方便地处理用户输入的数据。
- 用户认证: 学习 Django 用户认证系统,可以方便地实现用户注册、登录、权限管理等功能。
- RESTful API: 学习 Django REST framework,可以方便地构建 RESTful API。
- 测试: 编写单元测试和集成测试,保证代码的质量。
- 部署: 学习如何将 Django 应用部署到生产环境。
希望这个教程能帮助你入门 Django,并开启你的 Web 开发之旅! 祝你学习愉快!