본문 바로가기

Python_WEB/Try_Django

[Django]A Django Form

반응형

CodingEntrepreneurs Django 강의 정리

Django Form>

1. 렌더링 준비를 위한 데이터 준비 및 재구성

 

2. 데이터에 대한 HTML양식 생성

 

3. 제출된 양식 및 데이터 수신 및 처리

 

4. 형식을 설명하고, 작동 방식과 표시 방식을 결정

 

5. 양식 데이터를 관리하고 양식을 제출할 때 유효성 검사를 수행

 

form.html>

{% extends "base.html" %}

{% block content %}

{% if title %}
<h1>{{ title }}</h1>
{% endif %}

<form method="POST" action="."> {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Send</button>
</form>

{% endblock %}

 

forms>

from django import forms


class ContactForm(forms.Form):
    full_name = forms.CharField()
    email = forms.EmailField()
    content = forms.CharField(widget=forms.Textarea)

 

views>

from django.http import HttpResponse
from django.shortcuts import render
from django.template.loader import get_template

from .forms import ContactForm

# Model View Template (MVT)
# Dont Repeat Yourself = DRY
def home_page(request):
    my_title = "Hello there ..."
    context = {"title": "my_title"}
    if request.user.is_authenticated:
        context = {"title": my_title, "my_list": [1, 2, 3, 4, 5]}
    # template_name = "title.txt"
    # template_obj = get_template(template_name)
    # rendered_string = template_obj.render(context)
    # print(rendered_string)
    # doc = "<h1>{title}</h1>".format(title=my_title)
    # django_render_doc = "<h1>{{ title }}</h1>".format(title=my_title)
    # return render(request, "hello_world.html", {"title": rendered_string})
    return render(request, "home.html", context)


def about_page(request):
    return render(request, "about.html", {"title": "About Us"})


def contact_page(request):
    # print(request.POST)
    form = ContactForm(request.POST or None)
    if form.is_valid():
        print(form.cleaned_data)
        form = ContactForm()
    context = {"title": "Contact Us", "form": form}
    return render(request, "form.html", context)


def example_page(request):
    context = {"title": "Example"}
    template_name = "hello_world.html"
    template_obj = get_template(template_name)
    rendered_item = template_obj.render(context)
    return HttpResponse(rendered_item)
반응형

'Python_WEB > Try_Django' 카테고리의 다른 글

[Django]Model Form  (0) 2020.06.21
[Django]Saving Data from a Django Form  (0) 2020.06.17
[Django]Submit Raw HTML Form  (0) 2020.06.17
[Django]In App Templates  (0) 2020.06.17
[Django]Include URLs  (0) 2020.06.17