Django 中的表单小部件
server side programmingprogrammingpython
在本文中,我们将了解如何在 Django 表单中使用小部件。小部件可以非常有效地改善前端。小部件是从 Django 表单、文本区域、输入、密码输入等呈现的 HTML 元素,所有这些都是小部件。
首先,让我们创建一个 Django 项目和一个应用程序。我创建了名为"tutorial14"的项目和名为"djangoFormWidget"的应用程序。
在settings.py中添加应用程序,并在项目urls.py中包含应用程序的URL。
创建所有基本文件和文件夹,如模板、home.html、forms.py
示例
在应用程序的urls.py中 −
from django.urls import path,include from . import views urlpatterns = [ path('',views.home,name="home") ]
它将创建一个用于呈现视图的基本 URL。
在 views.py −
from django.shortcuts import render from .forms import CommentForm # 在此处创建您的视图。 from django.views.decorators.csrf import csrf_exempt @csrf_exempt def home(request): if request.method=='POST': form=CommentForm(request.POST) if form.is_valid(): form.save() commentform=CommentForm() return render(request,'home.html',{"commentform":commentform})
在这里,我们导入了表单并处理了它的 POST 和 GET 请求。
在 POST 中,我们保存数据,在 GET 中,我们将表单发送到前端。
在 models.py −
from django.db import models # 在此处创建您的模型。 class CommentModel(models.Model): comment=models.CharField(max_length=500)
在这里,我们创建了一个将在表单中使用的模型。我们需要这个模型来使用表单。
在 home.html −
<!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> {% for fm in commentform %} <form method="post"> {%csrf_token%} {{fm.errors}}<br> {{fm.label}}:{{fm}}<br> {%endfor%} <button type="submit">Submit</button> </form> </body> </html>
这是一个简单的前端,我们在这里呈现表单。
在 forms.py −
from django import forms from .models import CommentModel class CommentForm(forms.Form): comment=forms.CharField(widget=forms.Textarea(attrs={'class':'comment','title':'add comment'})) # this is the line which is used for widget, here I added TextArea widget you can see we also assigned class to widget using attrs attribute. def save(self): data=self.data modelRef=CommentModel(comment=data['comment']) modelRef.save()
这是我们制作表单的地方。我们使用内置的 Django 表单小部件在表单中呈现文本区域。