Primarne pro 3.IM - Django aplikace pro jednoduché vytvoření formuláře
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Jakub Škrabánek 53f6ea0a25 update readme.md 3 years ago
djangoform first commit 3 years ago
.gitignore first commit 3 years ago
README.md update readme.md 3 years ago
logo.png add 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

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

  1. Aktivace virtuálního prostředí

.venv\Scripts\activate.bat

  1. Instalace frameworku Django

(.venv) pip install Django

  1. 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í)

  1. 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

  1. 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
  1. 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__'
  1. 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)
  1. 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>
  1. Přidat model do admin.py
from django.contrib import admin
from .models import feedbackModel

admin.site.register(feedbackModel)
  1. zkontrolujeme databázi (migrujeme) a vytvoříme si SuperUser

manage.py makemigrations

manage.py migrate

manage.py createsuperuser

  1. HOTOVO - vložíme nějaké texty a zkontrolujeme admin panel

Postup pro hezčí formulář

  1. nainstalovat crispy_forms

(.venv) pip install django-crispy-forms

  1. vložit na začátek souboru index.html

{% load crispy_forms_tags %}

  1. upravit v index.html

{{form}} na {{form | crispy}}

Kroky k obnově projektu z GITu

Vykonat kroky:

  1. Vytvoření PyCharm projektu
  2. Stahnout/Klonovát repositář
  3. Vložit složku djangoform do složky s projektem a přepnout Console do té složky

cd djangoform

  1. Do Console napsat

pip install django

pip install django-crispy-forms

  1. Migrovat databazi

python manage.py migrate

  1. Vytvořit admin učet

python manage.py createsuperuser

  1. spustit server

python manage.py runserver