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>