Banner

Django 快速上手教程

2026-10-13

Django 快速上手建议直接用 Django 6.0 + Python 3.12+,按“环境 → 项目 → 应用 → 模型 → Admin → 视图/模板 → 路由”这条主线跑通一个最小博客项目。

1. 安装环境

python -m venv venv
source venv/bin/activate        # Windows 用 venv\Scripts\activate
pip install django==6.0
python -m django --version      # 应输出 6.0.x

2. 创建项目

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

浏览器打开 http://127.0.0.1:8000/,看到 Django 欢迎页即成功。

3. 创建应用

python manage.py startapp blog

把 blog 加入 mysite/settings.py:

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "blog",
]

4. 定义模型

blog/models.py:

from django.db import models

class Article(models.Model):
    title = models.CharField("标题", max_length=200)
    content = models.TextField("内容")
    created_at = models.DateTimeField("创建时间", auto_now_add=True)

    class Meta:
        verbose_name = "文章"
        verbose_name_plural = "文章"

    def __str__(self):
        return self.title

生成并应用迁移:

python manage.py makemigrations
python manage.py migrate

5. 启用 Admin 后台

blog/admin.py:

from django.contrib import admin
from .models import Article

admin.site.register(Article)

创建管理员:

python manage.py createsuperuser

访问 http://127.0.0.1:8000/admin/,登录后即可对文章做增删改查。

6. 写视图和模板

blog/views.py:

from django.shortcuts import render
from .models import Article

def article_list(request):
    articles = Article.objects.order_by("-created_at")
    return render(request, "blog/article_list.html", {"articles": articles})

创建 blog/templates/blog/article_list.html:

<!DOCTYPE html>
<html>
<head><title>文章列表</title></head>
<body>
  <h1>文章列表</h1>
  {% for article in articles %}
    <article>
      <h2>{{ article.title }}</h2>
      <p>{{ article.content }}</p>
      <small>{{ article.created_at }}</small>
    </article>
  {% empty %}
    <p>暂无文章</p>
  {% endfor %}
</body>
</html>

7. 配置路由

blog/urls.py:

from django.urls import path
from . import views

app_name = "blog"

urlpatterns = [
    path("", views.article_list, name="article_list"),
]

mysite/urls.py:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("blog.urls")),
]

8. 运行

python manage.py runserver
  • 首页:http://127.0.0.1:8000/
  • 后台:http://127.0.0.1:8000/admin/
7