Python Django Forms - Django provides a Form class which is used to create HTML forms. It describes a form and how it works and appears.
Forms.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | from django import forms COUNTRY_CHOICES = ( ( "1" , "Philippines" ), ( "2" , "Japan" ), ( "3" , "Korea" ), ( "4" , "Singapore" ), ( "5" , "USA" ), ) CHOICES = [( 'male' , 'Male' ), ( 'female' , 'Female' )] class StudentForm(forms.Form): firstname = forms.CharField(label = "Enter first name" ,max_length = 50 ) lastname = forms.CharField(label = "Enter last name" , max_length = 100 ) country = forms.ChoiceField(choices = COUNTRY_CHOICES) date = forms.DateField() age = forms.DecimalField() email = forms.EmailField() photo = forms.FileField() gender = forms.ChoiceField(choices = CHOICES, widget = forms.RadioSelect) accept = forms.BooleanField(label = "Accept privacy and terms" ) def __str__( self ): return self .firstname |
1 2 3 4 5 6 7 8 9 | from django.shortcuts import render, redirect # Create your views here. from django import forms from myapp.forms import StudentForm def index(request): student = StudentForm() return render(request, "form.html" ,{ 'form' :student}) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>Django Forms</title> </head> <body> <p><h2>Django Forms</h2></p> <form method= "POST" class = "post-form" > {% csrf_token %} {{ form.as_p }} <button type= "submit" class = "save btn btn-default" >Save</button> </form> </body> </html> |
urls.py
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index', views.index),
#path('', views.index),
]