Django 核心概念
FreeGuideOnline
最新
2026-07-14
Article List
... {% endblock %} ```在视图中渲染模板使用 render() 快捷函数:
from django.shortcuts import render
def article_list(request):
articles = Article.objects.all()
return render(request, 'blog/article_list.html', {'articles': articles})
表单处理
Django 的表单系统提供数据验证和 HTML 表单生成功能。创建一个表单类:
from django import forms
class ArticleForm(forms.Form):
title = forms.CharField(max_length=200)
content = forms.CharField(widget=forms.Textarea)
或基于模型自动创建:
from django.forms import ModelForm
from .models import Article
class ArticleModelForm(ModelForm):
class Meta:
model = Article
fields = ['title', 'content']
视图中的典型处理流程:
def article_create(request):
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid():
# 处理有效数据
title = form.cleaned_data['title']
...
return redirect('article-list')
else:
form = ArticleForm()
return render(request, 'blog/article_form.html', {'form': form})
模板中显示表单:
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
{% csrf_token %} 提供跨站请求伪造保护,是 POST 请求的安全必须。
管理员界面
Django 开箱即用提供强大管理后台。只需在 admin.py 中注册模型:
from django.contrib import admin
from .models import Article
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'pub_date')
search_fields = ('title',)