Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Django의 양식 위젯

<시간/>

이 기사에서는 Django 형식에서 위젯을 사용하는 방법을 살펴보겠습니다. 위젯은 프론트엔드를 개선하는 데 도움이 됩니다. 위젯은 Django 양식, 텍스트 영역, 입력, 비밀번호 입력 등으로부터 렌더링된 html 요소이며 모두 위젯입니다.

먼저 Django 프로젝트와 앱을 생성해 보겠습니다. "tutorial14"라는 이름으로 프로젝트를 만들었습니다. 및 이름이 "djangoFormWidget"인 앱 .

settings.py에 앱 추가 urls.py 프로젝트에 앱의 URL을 포함합니다.

Templates, home.html, forms.py와 같은 모든 기본 파일과 폴더를 만드세요.

예시

앱의 url.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

# Create your views here.
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

# Create your models here.
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 양식 위젯을 사용하여 양식의 텍스트 영역을 렌더링했습니다.

출력

Django의 양식 위젯