3.7 KiB
Django-form
Primarne pro 3.IM - Django aplikace pro jednoduché vytvoření formuláře
Django formuláře - postup
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ě:
- vytvoření virtualního prostředi
python -m venv .venv
- Aktivace virtuálního prostředí
.venv\Scripts\activate.bat
- Instalace frameworku Django
(.venv) pip install Django
- 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í)
- 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
- vytvoření základního modelu v název_projektu/models.py
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
- vytvoření souboru forms.py ve složce název_aplikace
from django.forms import ModelForm
from .models import feedbackModel
class feedbackForm(ModelForm):
class Meta:
model = feedbackModel
fields = '__all__'
- 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 "** **"
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
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)
- vytvoříme složku templates v složce s aplikaci a vytvoříme ve složce jestě soubor index.html
<h1>Feedback formular</h1>
<form action="" method="post">
{% csrf_token %}
{{form}}
<input type="submit">
</form>
- Přidat model do admin.py
from django.contrib import admin
from .models import feedbackModel
admin.site.register(feedbackModel)
- zkontrolujeme databázi (migrujeme) a vytvoříme si SuperUser
manage.py makemigrations
manage.py migrate
manage.py createsuperuser
- HOTOVO - vložíme nějaké texty a zkontrolujeme admin panel
Postup pro hezčí formulář
- nainstalovat crispy_forms
(.venv) pip install django-crispy-forms
- vložit na začátek souboru index.html
{% load crispy_forms_tags %}
- upravit v index.html
{{form}}
na {{form | crispy}}
Kroky k obnově projektu z GITu
Vykonat kroky:
- Vytvoření PyCharm projektu
- Stahnout/Klonovát repositář
- Vložit složku djangoform do složky s projektem a přepnout Console do té složky
cd djangoform
- Do Console napsat
pip install django
pip install django-crispy-forms
- Migrovat databazi
python manage.py migrate
- Vytvořit admin učet
python manage.py createsuperuser
- spustit server
python manage.py runserver