📜  表单的 django 模板示例 - Python (1)

📅  最后修改于: 2023-12-03 14:57:19.868000             🧑  作者: Mango

表单的 Django 模板示例 - Python

在 Django 中,表单是 Web 开发中的重要组成部分。本文将介绍 Django 中的表单模板示例,帮助开发者更好的理解 Django 的表单。

表单模板

首先我们需要一个表单模板,这里以登录表单为例:

<form method="POST" action="{% url 'login' %}">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">登录</button>
</form>

注:{% url 'login' %} 会自动填充登录页面的 URL。

表单视图

在 Django 中,每个表单都需要自己的视图,这里以 Django FormView 为例:

from django.views.generic.edit import FormView
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import login
from django.urls import reverse_lazy


class LoginView(FormView):
    template_name = 'login.html'
    form_class = AuthenticationForm
    success_url = reverse_lazy('home')

    def form_valid(self, form):
        login(self.request, form.get_user())
        return super().form_valid(form)

注:AuthenticationForm 是 Django 自带的登录表单。

URL 配置

最后是 URL 配置,将视图绑定到 URL 上:

from django.urls import path
from .views import LoginView

urlpatterns = [
    path('login/', LoginView.as_view(), name='login'),
]

至此,我们就完成了一个登录表单的 Django 应用。

Markdown 代码片段:

# 表单的 Django 模板示例 - Python

在 Django 中,表单是 Web 开发中的重要组成部分。本文将介绍 Django 中的表单模板示例,帮助开发者更好的理解 Django 的表单。

## 表单模板

首先我们需要一个表单模板,这里以登录表单为例:

```html
<form method="POST" action="{% url 'login' %}">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">登录</button>
</form>

注:{% url 'login' %} 会自动填充登录页面的 URL。

表单视图

在 Django 中,每个表单都需要自己的视图,这里以 Django FormView 为例:

from django.views.generic.edit import FormView
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import login
from django.urls import reverse_lazy


class LoginView(FormView):
    template_name = 'login.html'
    form_class = AuthenticationForm
    success_url = reverse_lazy('home')

    def form_valid(self, form):
        login(self.request, form.get_user())
        return super().form_valid(form)

注:AuthenticationForm 是 Django 自带的登录表单。

URL 配置

最后是 URL 配置,将视图绑定到 URL 上:

from django.urls import path
from .views import LoginView

urlpatterns = [
    path('login/', LoginView.as_view(), name='login'),
]

至此,我们就完成了一个登录表单的 Django 应用。