下载工作台
Python 编程实战

Django 快速入门

试读上半部分 · 解锁后可读全文

第 15 章 · Django 快速入门

本章目标:理解 Django MTV(Model–Template–View)架构;使用官方命令 django-admin startproject blogdemo 创建项目;配置应用、模型AdminURL模板;运行开发服务器并完成一篇博客文章的增删改查演示;不涉及任何真实商城业务代码

学时建议:5~6 小时(含 2 小时跟练)

前置ch10 虚拟环境与 pip;ch05~ch07 函数、OOP 与魔法方法。


15.1 Django 是什么

Django 是 Python 生态中成熟的 Web 框架,内置 ORM、Admin、表单、模板、用户认证等,适合快速构建内容站、后台与 API。

浏览器请求
    → URL 路由 (urls.py)
    → 视图 View (views.py)
    → 模型 Model (models.py) ↔ 数据库
    → 模板 Template (.html) 渲染响应
MTV类似 MVC 中的
Model数据层
Template表现层
View控制层(Django 的 View ≈ Controller)

官方文档:https://docs.djangoproject.com/


15.2 创建项目 blogdemo

cd ~/python-learn
python -m venv .venv
# 激活 .venv 后
pip install "Django>=4.2,<5"
django-admin --version

django-admin startproject blogdemo
cd blogdemo
python manage.py runserver

浏览器访问 http://127.0.0.1:8000/,看到火箭页即成功。

blogdemo/
├── manage.py
└── blogdemo/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    ├── asgi.py
    └── wsgi.py
文件作用
manage.py项目管理入口
settings.py全局配置
urls.py根 URL 配置
wsgi.py生产部署入口
以上为 Django 官方教程标准结构,与任何企业内部仓库无关。

15.3 创建应用 posts

python manage.py startapp posts

blogdemo/settings.pyINSTALLED_APPS 中注册:

INSTALLED_APPS = [
    # ...
    "posts",
]
posts/
├── admin.py
├── apps.py
├── models.py
├── views.py
├── urls.py      # 需自建
└── migrations/

15.4 定义模型 Model

posts/models.py

from django.db import models


class Post(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(max_length=200, unique=True)
    body = models.TextField()
    published = models.BooleanField(default=False)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        ordering = ["-created_at"]

    def __str__(self):
        return self.title

迁移数据库:

python manage.py makemigrations posts
python manage.py migrate
字段类型说明
CharField短文本
TextField长文本
BooleanField布尔
DateTimeField日期时间
SlugFieldURL 友好标识

默认使用 SQLitedb.sqlite3),教学足够。


15.5 Admin 后台

posts/admin.py

from django.contrib import admin
from .models import Post

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ("title", "published", "created_at")
    list_filter = ("published",)
    search_fields = ("title", "body")
    prepopulated_fields = {"slug": ("title",)}

创建超级用户并启动:

python manage.py createsuperuser
python manage.py runserver

访问 http://127.0.0.1:8000/admin/,登录后管理文章。


以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。