# Django-form Primarne pro 3.IM - Django aplikace pro jednoduché vytvoření formuláře ## Django formuláře - postup pro vytvoření formuláře Nejprve si zjistíme, jestli jsme ve virtualním prostředí pro python > *(venv) C:\pythonProjects\Django :* - ukazka cmd prostředí Pokud používáme IDE které nám vytvoří *venv* (např. PyCharm) tak můžeme přeskočit na bod 3. Pokud nemáme virtualní prostředí aktivované postupujeme následovně: 1. vytvoření virtualního prostředi > python -m venv .venv 2. Aktivace virtuálního prostředí > .venv\Scripts\activate.bat 3. Instalace frameworku Django > (.venv) pip install Django 4. Založení Django projektu > (.venv) django-admin startproject **název_projektu** . Nezapomenout na TEČKU na konci příkazu (jinak to bude složitější složkování) 5. Založení Django aplikace > (.venv) python manage.py startapp **název_aplikace** a následné přidání **název_aplikace** do *název_projektu/settings.py* do kolonky INSTALLED_APPS 6. vytvoření základního modelu v *název_projektu/models.py* ```python from django.db import models class feedbackModel(models.Model): nazev = models.CharField(max_length=100) zprava = models.TextField(max_length=10000) def __str__(self): return self.nazev + " " + self.zprava ``` 7. vytvoření souboru **forms.py** ve složce *název_aplikace* a přidat `'forms',` do *název_projektu/settings.py* do kolonky INSTALLED_APPS ```python from django.forms import ModelForm from .models import feedbackModel class feedbackForm(ModelForm): class Meta: model = feedbackModel fields = '__all__' ``` 8. Přídání IndexView do *nazev_projektu/urls.py* a *název_aplikace/views.py* urls.py -> přídáme jen to, co je ve "** **" ```python from django.contrib import admin from django.urls import path **from form.views import indexView** urlpatterns = [ path('admin/', admin.site.urls), **path('',indexView),** ] ``` views.py ```python from django.shortcuts import render from .forms import feedbackForm def indexView(request): form = feedbackForm if request.method == "POST": #print(request.POST) #potrebuju zkontrolovani form = feedbackForm(request.POST) if form.is_valid(): form.save() context = {'form':form} return render(request,"index.html", context) ``` 9. vytvoříme složku *templates* v složce s aplikaci a vytvoříme ve složce jestě soubor *index.html* ```html
{{feedbackinfo.zprava}}
ZPET ``` 5. upraváme index.html a pod `