Django 快速上手教程
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.x2. 创建项目
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 migrate5. 启用 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/