Django 入门教程

FreeGuideOnline 最新 2026-07-16

欢迎,{{ name }}!

当前时间:{{ time }}

```

{{ }} 是 Django 模板变量语法,双花括号内的变量将由视图传入。

修改视图返回模板

更新 pages/views.py

from django.shortcuts import render
from datetime import datetime

def home(request):
    context = {
        'name': 'Django 学习者',
        'time': datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
    }
    return render(request, 'pages/home.html', context)

render 函数会加载模板、填充上下文并返回 HttpResponse。再次访问首页,你将看到动态的欢迎信息和当前时间。

模型与数据库

Django 自带一个对象关系映射(ORM),让你可以用 Python 代码来定义数据表,而无需编写 SQL。

定义模型

假设我们要创建一个简单的文章模型。在 pages/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)

    def __str__(self):
        return self.title
  • CharField 用于短文本。
  • TextField 用于长文本。
  • auto_now_add=True 表示在对象首次创建时自动设置时间。

执行数据库迁移

每次修改模型后,需要生成并应用迁移文件:

python manage.py makemigrations
python manage.py migrate

这会在数据库中创建对应的表。

使用 Django 管理后台

管理后台是 Django 的一大亮点,你几乎不用写任何前端代码就能获得一个功能齐全的后台界面。

创建管理员账户

运行以下命令,根据提示设置用户名、邮箱和密码:

python manage.py createsuperuser

注册模型到后台

pages/admin.py 中注册 Article 模型:

from django.contrib import admin
from .models import Article

admin.site.register(Article)

现在启动服务器,访问 http://127.0.0.1:8000/admin/,用刚创建的管理员账户登录。你将看到 Article 表,可以对其中的数据进行增删改查。

在视图中使用模型数据

最后,让我们在首页展示数据库中的文章列表。修改 pages/views.py 中的 home 视图:

from .models import Article

def home(request):
    articles = Article.objects.all().order_by('-created_at')
    context = {
        'name': 'Django 学习者',
        'time': datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        'articles': articles,
    }
    return render(request, 'pages/home.html', context)

更新模板 home.html,在 </body> 前添加:

<h2>最新文章</h2>
<ul>
    {% for article in articles %}
        <li>
            <strong>{{ article.title }}</strong> - {{ article.created_at|date:"Y-m-d" }}
        </li>
    {% empty %}
        <li>暂无文章。</li>
    {% endfor %}
</ul>