【成人版python基础入门】第七章 Django 巨人肩膀上的开发
Django 巨人肩膀上的开发
在 Web 开发的广阔领域中,Django 以其强大的功能和全面的特性,称为 Web 开发的巨人。Django 是一个高级的 Python Web 框架,它鼓励快速开发和干净、实用的设计。通过本文,你将快速了解 Django 的特点和优势,学习如何安装 Django,创建并运行 Django 项目,最后通过一个实际的代码示例,展示如何搭建一个简单的博客系统。让我们一起站在巨人的肩膀上,体验 Django 的魅力吧!
Django 的特点
功能全面
Django 提供了几乎所有 Web 开发所需的功能,包括路由、视图、模板、数据库管理等。你几乎不需要依赖外部库,就能完成一个功能完整的 Web 应用。
快速开发
Django 强调“不要重复造轮子”(Don’t Repeat Yourself, DRY),提供了许多预先配置好的工具和模块,让你可以快速地开发应用。
安全性
Django 在安全性方面做得非常好,它自带了许多安全措施,如 SQL 注入防护、跨站脚本攻击(XSS)防护等。
社区支持
Django 拥有一个庞大且活跃的社区,你可以在官方文档、用户论坛、GitHub 等地方找到大量资源和帮助。
风趣的例子
想象一下,你是一名建筑设计师,需要在短时间内设计并建造一座大楼。Django 就像是你手中的超级工具包,里面不仅有各种预制的模块和组件,还有一本详细的说明书。你可以快速地选择需要的模块,组装成一个功能完善的建筑,而不需要从头开始制作每一个零件。
安装 Django
准备工作
在安装 Django 之前,确保你已经安装了 Python。你可以从 Python 官方网站 下载并安装最新版本的 Python。
使用 pip
安装 Django
-
打开命令行:在 Windows 上,你可以使用
cmd
或PowerShell
;在 macOS 和 Linux 上,你可以使用Terminal
。 -
安装 Django:
pip install Django
通常情况下,这个命令会安装 Django 及其依赖。如果你遇到任何问题,可以尝试更新
pip
:pip install --upgrade pip
交互式安装教程
假设你是一名勇敢的探险家,准备进入一个神秘的城堡(你的电脑)。你需要一把神奇的钥匙(pip
)来开启 Django 的大门(安装 Django)。
步骤1:打开魔法地图(命令行)
- Windows:点击
Win + R
,输入cmd
或PowerShell
,按回车键。 - macOS 和 Linux:打开
Terminal
。
步骤2:找到魔法商店(安装 Django)
在魔法地图上输入以下命令,就能找到魔法商店并购买 Django 这把神奇的钥匙:
pip install Django
步骤3:检验魔法钥匙(验证安装)
为了确保你已经成功地拿到了 Django 这把钥匙,可以输入以下命令来检查 Django 是否安装成功:
pip list
在输出的列表中,你应该能看到 Django
和其版本号。
创建并运行 Django 项目
基本步骤
- 创建项目:使用
django-admin
工具创建一个新的 Django 项目。 - 创建应用:在一个项目中,你可以创建多个应用,每个应用负责一个特定的功能。
- 配置应用:编辑项目的设置文件,将新创建的应用添加到项目中。
- 定义模型:使用 Django 的 ORM(对象关系映射)工具定义数据库模型。
- 创建视图:编写视图函数,处理用户的请求。
- 定义路由:使用
urls.py
文件定义 URL 路由,将 URL 映射到视图函数。 - 创建模板:编写 HTML 模板,用于渲染页面。
- 运行服务器:启动 Django 开发服务器,测试你的应用。
示例教程
我们将通过一个简单的博客系统示例,详细介绍如何创建和运行一个 Django 项目。
创建项目
-
打开命令行,导航到你希望创建项目的目录。
-
创建 Django 项目:
django-admin startproject myblog
这行命令会创建一个名为
myblog
的项目目录,并生成一些基础文件。
创建应用
项目创建完成后,进入项目目录:
cd myblog
在项目目录中,创建一个名为 blog
的应用:
python manage.py startapp blog
这行命令会创建一个名为 blog
的应用目录,并生成一些基础文件。
配置应用
编辑项目目录中的 settings.py
文件,将 blog
应用添加到 INSTALLED_APPS
列表中:
# myblog/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 添加这个行
]
定义模型
在 blog
应用目录中的 models.py
文件中,定义一个博客文章的模型:
# blog/models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.title
创建数据库表
在命令行中,运行以下命令来生成数据库迁移文件,并应用这些迁移文件:
python manage.py makemigrations
python manage.py migrate
创建视图
在 blog
应用目录中的 views.py
文件中,编写视图函数:
# blog/views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import Post
def index(request):
posts = Post.objects.all()
return render(request, 'blog/index.html', {'posts': posts})
def post_detail(request, post_id):
post = Post.objects.get(id=post_id)
return render(request, 'blog/detail.html', {'post': post})
定义路由
在 blog
应用目录中,创建一个 urls.py
文件,并定义 URL 路由:
# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('<int:post_id>/', views.post_detail, name='post_detail'),
]
将这个应用的 URL 路由添加到项目的 urls.py
文件中:
# myblog/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
创建模板
在 blog
应用目录中,创建一个 templates
目录,并在其中创建 blog
子目录。然后在 blog
目录中创建 index.html
和 detail.html
模板文件。
index.html
模板
<!-- blog/templates/blog/index.html -->
<!DOCTYPE html>
<html>
<head>
<title>我的博客</title>
</head>
<body>
<h1>欢迎来到我的博客</h1>
<ul>
{% for post in posts %}
<li><a href="{% url 'post_detail' post.id %}">{{ post.title }}</a></li>
{% endfor %}
</ul>
</body>
</html>
detail.html
模板
<!-- blog/templates/blog/detail.html -->
<!DOCTYPE html>
<html>
<head>
<title>{{ post.title }}</title>
</head>
<body>
<h1>{{ post.title }}</h1>
<p>{{ post.content }}</p>
<p>发表日期:{{ post.pub_date }}</p>
<a href="{% url 'index' %}">返回首页</a>
</body>
</html>
运行服务器
-
启动 Django 开发服务器:
python manage.py runserver
-
访问应用:
打开浏览器,访问
http://127.0.0.1:8000/blog/
,你应该能看到博客首页,列出所有的博客文章。点击文章标题,可以进入文章详情页面。
代码样例:搭建一个简单的博客系统
项目结构
一个典型的 Django 项目结构如下:
myblog/
manage.py
myblog/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
blog/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
urls.py
templates/
blog/
index.html
detail.html
模型定义
# blog/models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.title
视图定义
# blog/views.py
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from .models import Post
def index(request):
posts = Post.objects.all()
return render(request, 'blog/index.html', {'posts': posts})
def post_detail(request, post_id):
post = get_object_or_404(Post, id=post_id)
return render(request, 'blog/detail.html', {'post': post})
路由定义
# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('<int:post_id>/', views.post_detail, name='post_detail'),
]
在项目的 urls.py
文件中,将 blog
应用的 URL 路由包含进来:
# myblog/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
模板文件
在 blog/templates/blog/
目录中创建 index.html
和 detail.html
模板文件。
index.html
模板
<!DOCTYPE html>
<html>
<head>
<title>我的博客</title>
</head>
<body>
<h1>欢迎来到我的博客</h1>
<ul>
{% for post in posts %}
<li><a href="{% url 'post_detail' post.id %}">{{ post.title }}</a></li>
{% endfor %}
</ul>
</body>
</html>
detail.html
模板
<!DOCTYPE html>
<html>
<head>
<title>{{ post.title }}</title>
</head>
<body>
<h1>{{ post.title }}</h1>
<p>{{ post.content }}</p>
<p>发表日期:{{ post.pub_date }}</p>
<a href="{% url 'index' %}">返回首页</a>
</body>
</html>
运行服务器
-
生成数据库迁移文件:
python manage.py makemigrations
-
应用数据库迁移:
python manage.py migrate
-
创建超级用户(可选):
python manage.py createsuperuser
按照提示输入用户名、邮箱和密码,创建一个超级用户,用于访问 Django 管理界面。
-
启动开发服务器:
python manage.py runserver
-
访问应用:
打开浏览器,访问
http://127.0.0.1:8000/blog/
,你应该能看到博客首页,列出所有的博客文章。点击文章标题,可以进入文章详情页面。
摘要
Django 是一个功能全面的 Web 框架,专注于快速开发和良好的设计。通过本文,你了解了 Django 的特点和优势,学会了如何安装 Django,创建并运行一个 Django 项目,并通过一个实际的代码示例,展示了如何搭建一个简单的博客系统。Django 的 MVC 模型和 ORM 工具使得数据管理和视图处理变得非常简单,让你可以专注于核心功能的开发。
希望本文能够帮助你快速入门 Django,体验构建更大规模应用的乐趣。站在巨人的肩膀上,你不仅能快速地实现复杂的功能,还能更好地理解 Web 开发的最佳实践。继续探索 Django 的更多功能,你会发现,它不仅可以帮助你制作简单的网站,还能支持复杂的 Web 应用开发。祝你在 Web 开发的道路上越走越远,成为一名优秀的 Python Web 开发者!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)