Django快速上手
基础教学 1 min read

Django快速上手

Blog Author

Django 快速上手:从原理到实战的完整教学


一、Web开发的演变与背景

在Web发展的初期,开发者需要手动编写静态HTML文件,这对频繁更新的网站(如新闻门户)来说效率极低。为了解决这个问题,动态网页技术应运而生:

  • 早期方案: CGI(公共网关接口)通过后台程序动态生成HTML内容;
  • 发展演化: PHP、ASP、JSP 等服务器端语言兴起;
  • 现代方案: 基于框架(如 Django)的 MVC/MTV 架构系统,自动路由、模板渲染、数据库集成。

Web应用的核心价值: 前端统一入口(浏览器)、后端提供资源(API/页面),即用即访问,跨平台、跨设备。


二、Web 应用机制与基本术语

工作流程概览

  1. 用户输入域名(URL)
  2. DNS 解析为服务器 IP 地址
  3. 发起 HTTP 请求
  4. Web 服务器接收请求,传给应用程序
  5. 应用处理业务逻辑并返回响应(HTML、JSON等)

核心术语解释

术语 说明
URL/URI 资源的网络唯一标识
域名 用于访问网站的可读标识符(如 example.com
DNS 将域名解析为 IP 地址
IP 地址 唯一标识网络设备的数字地址
HTTP 协议 客户端与服务器通信的应用协议
反向代理 服务器作为中间人转发请求和响应(如 Nginx)
Web服务器 专门负责处理HTTP请求的服务器软件(如 Apache/Nginx)

三、Django 框架概述

什么是 Django?

Django 是一个开箱即用、全栈、功能完善的 Python Web 框架,具有以下特点:

  • 遵循 MTV 架构(Model-Template-View)
  • 遵循 DRY 原则(Don't Repeat Yourself)
  • 自动路由、模板系统、ORM、表单校验、安全机制一应俱全

Django 最早由新闻网站开发团队构建,因此非常适合数据密集型、内容驱动的网站开发。

MTV 架构模型对照 MVC

Django(MTV) MVC 标准 说明
Model Model 数据模型,对应数据库结构
Template View 页面模板,负责数据展示
View Controller 视图函数,处理请求逻辑


四、Django 的使用场景与优势

使用场景

  • 企业网站与内容管理系统(CMS)
  • 数据可视化平台、管理后台
  • RESTful API 服务(结合 Django REST Framework)
  • 教育平台、社交网站、博客系统等

最佳实践优势

优势 说明
内置 Admin 后台 零代码生成数据库管理界面
强大的 ORM 系统 将数据库操作抽象为 Python 类
模板引擎 高效构建页面结构,适配前后端分离或结合的开发模式
丰富的三方生态 社区活跃,插件丰富,文档完整
安全机制内建(如CSRF) 默认防御常见攻击,如跨站脚本、SQL注入

五、Django 快速上手实战

步骤一:环境准备与项目创建

pip3 install -U pip
pip3 install django==2.2.13
django-admin startproject hellodjango
cd hellodjango
python manage.py runserver

浏览器访问 http://127.0.0.1:8000,成功加载默认首页即表示启动成功。


步骤二:项目结构介绍

文件/目录 功能说明
manage.py Django 管理脚本入口
hellodjango/settings.py 全局配置文件(数据库、模板路径、时区等)
hellodjango/urls.py URL 映射规则
hellodjango/wsgi.py WSGI 服务接口入口

建议修改语言和时区配置(settings.py):

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

步骤三:创建第一个应用并响应请求

python manage.py startapp first

views.py 中添加响应函数

from django.http import HttpResponse


def show_index(request):
    return HttpResponse('<h1>Hello, Django!</h1>')

修改项目的 urls.py 注册路径

from django.contrib import admin
from django.urls import path
from first.views import show_index


urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', show_index),
]

浏览器访问 http://127.0.0.1:8000/hello/ 即可看到内容。


步骤四:生成动态内容

from random import sample
from django.http import HttpResponse


def show_index(request):
    fruits = ['Apple', 'Banana', 'Orange', 'Mango']
    selected = sample(fruits, 2)
    return HttpResponse(f"<h3>推荐水果:{', '.join(selected)}</h3>")

每次刷新都会看到不同的水果推荐。


六、模板引擎:渲染更复杂页面

步骤一:添加模板目录

在项目根目录创建 templates/index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title></head>
<body>
<h1>今日推荐水果:</h1>
<ul>
    {% for fruit in fruits %}
    <li>{{ fruit }}</li>
    {% endfor %}
</ul>
</body>
</html>

步骤二:设置模板路径(settings.py

TEMPLATES[0]['DIRS'] = [os.path.join(BASE_DIR, 'templates')]

步骤三:修改视图使用 render

from django.shortcuts import render
from random import sample


def show_index(request):
    fruits = ['Apple', 'Banana', 'Orange', 'Mango', 'Peach']
    selected = sample(fruits, 3)
    return render(request, 'index.html', {'fruits': selected})

刷新页面可见后端渲染的动态 HTML。


七、最佳实践与建议

类别 最佳实践
应用划分 每个独立模块创建单独的 app
模板结构 使用统一的模板文件夹并分类管理(如 base.html)
配置管理 使用 .env 文件配合 django-environ 管理敏感信息
虚拟环境 建议使用 venv/conda 隔离项目依赖
路由管理 大项目推荐使用 include() 分模块管理 URL
数据模型 使用 Django ORM 统一管理数据库
异常处理 视图中建议使用 try-except 并自定义异常页面
部署上线 使用 Gunicorn + Nginx + Supervisor 部署

八、推荐学习资料


总结:Django 是初学者快速开发 Web 项目的首选框架

通过以上实战你已掌握:

  • Web 开发的基本机制
  • Django 项目的创建与配置
  • 请求响应流程(View + URL)
  • 动态页面生成与模板渲染
  • 使用 PyCharm 高效开发 Django 应用

未来你可以继续探索:

  • Django ORM 与数据库建模
  • Django Admin 后台管理系统
  • Django REST Framework 构建API服务
  • 前后端分离与部署上线

🎯 Django 的核心价值是“用最少的代码实现最大功能”,适合快速上线、结构清晰、功能全面的 Web 项目开发。