|
3 years ago | |
---|---|---|
djangoform | 3 years ago | |
.gitignore | 3 years ago | |
README.md | 3 years ago | |
logo.png | 3 years ago |
README.md
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ě:
- 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 a přidat
'forms',
do název_projektu/settings.py do kolonky INSTALLED_APPS
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
Upozornění!!! PŘI KAŽDÉ ZMĚNĚ MODELS.PY JE POTŘEBA MAKEMIGRATIONS
(.venv) python manage.py makemigrations
(.venv) python manage.py migrate
(.venv) python 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}}
Django formuláře - vypis modelu z databáze
- vytvořímě feedback.html soubor ve složce templates a do
body
vložíme následující
<h1>Feedback list</h1>
<a href="/">Domu</a>
<ul>
{% for i in feedback %}
<li>
<a href="/feedbackinfo/{{i.id}}">{{ i.nazev }}</a>
</li>
{% endfor %}
</ul>
- do views.py vložíme na začátek
from .models import feedbackModel
a ba konec následující řádky:
def feedbackview(request):
feedback = feedbackModel.objects.all()
return render(request, "feedback.html", {'feedback':feedback})
def feedbackinfoview(request, i):
feedbackinfo = feedbackModel.objects.get(id=i)
return render(request, "feedbackinfo.html", {'feedbackinfo':feedbackinfo})
- do urls.py vložíme do importu views i metody feedbackview, feedbackinfoview a do urlpatterns vložíme následující:
path('feedback/',feedbackview),
path('feedbackinfo/<int:i>', feedbackinfoview)
- vytvořímě feedbackinfo.html soubor ve složce templates a do
body
vložíme následující
<h1> {{ feedbackinfo.nazev}}</h1>
<p> {{feedbackinfo.zprava}}</p>
<a href="/feedback/">ZPET</a>
- upraváme index.html a pod
<form>
vložíme následující:
<br><a href="/feedback/">SEZNAM ODPOVĚDÍ</a>
Kroky k obnově projektu z GITu
Při používání PyCharm:
- Vytvoření PyCharm projektu
- Stahnout/Klonovát repositář
- V archivu rozkliknout django-form a vložit složku djangoform (vedle složky jsou soubory README.md a logo.png) do složky s projektem a přepnout Console (v PyCharm) do 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
Při použití VS CODE:
budeme celou dobu používat CMD (command prompt)
- vytvořit si práznou složku a přepnout do ní
mkdir nazevSlozky
cd nazevSlozky
- Vytvoření virtuálního prostředí
python -m venv .venv
- Aktivace virtuálního prostředí
.venv\Scripts\activate.bat
- Instalce Django
pip install django
- Stahnout/Klonovát repositář do složky
git clone http://git.asgard.odbornaskola.cz/skrabanek/Django-form.git
- prepnout do slozky složky djangoform
cd Django-form\djangoform
- Do CMD 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