Browse Source
Upravil jsem hlavní README.md soubor z duvodu toho aby clovek co navstivil tento repositar tak aby vedel co se tady deje.master
1 changed files with 125 additions and 1 deletions
@ -1,3 +1,127 @@ |
|||||
# Django-form |
# Django-form |
||||
|
|
||||
Primarne pro 3.IM - Django aplikace pro jednoduché vytvoření formuláře |
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í |
||||
|
|
||||
|
Můžeme pokračovat: |
||||
|
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* |
||||
|
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 |
||||
|
<h1>Feedback formular</h1> |
||||
|
|
||||
|
<form action="" method="post"> |
||||
|
{% csrf_token %} |
||||
|
{{form}} |
||||
|
<input type="submit"> |
||||
|
</form> |
||||
|
``` |
||||
|
10. Přidat model do admin.py |
||||
|
```python |
||||
|
from django.contrib import admin |
||||
|
from .models import feedbackModel |
||||
|
|
||||
|
admin.site.register(feedbackModel) |
||||
|
``` |
||||
|
|
||||
|
11. zkontrolujeme databázi (migrujeme) a vytvoříme si SuperUser |
||||
|
|
||||
|
> manage.py makemigrations |
||||
|
|
||||
|
> manage.py migrate |
||||
|
|
||||
|
> manage.py createsuperuser |
||||
|
|
||||
|
12. HOTOVO - vložíme nějaké texty a zkontrolujeme admin panel |
||||
|
|
||||
|
Postup pro hezčí formulář |
||||
|
|
||||
|
1. nainstalovat crispy_forms |
||||
|
> (.venv) pip install django-crispy-forms |
||||
|
|
||||
|
2. vložit na začátek souboru index.html |
||||
|
|
||||
|
`{% load crispy_forms_tags %}` |
||||
|
|
||||
|
3. upravit v index.html |
||||
|
|
||||
|
`{{form}}` na `{{form | crispy}}` |
||||
|
|
||||
|
|
||||
|
### postup při importu |
||||
|
(Work in progress) |
Loading…
Reference in new issue