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.
2.2 KiB
2.2 KiB
Django-login
Primárně pro 3.I+3.IM - Django program se základním přihlašovacím systémem
založení projektu
Pokud používáme PyCharm přesuneme se na bod 3.
- Vytvoříme si virtální prostředí
python -m venv .venv
- Spustíme virtuální prostředí
.venv\Scripts\Activate.bat
- Naimportujeme si Django (.venv) nepíšeme
(.venv) pip install django
- Vytvoříme si projekt (nezapomeňte na konci TEČKU)
django-admin startproject loginproject .
- Migrujeme projekt
python manage.py migrate
- Spustíme server na vyzkoušení
python manage.py runserver
- V settings.py nalezneme si část TEMPLATES (řádek 54 v základu) a upravíme DIRS (řáděk 57 v základu)
'DIRS': [], >>>>>> 'DIRS': [BASE_DIR / "templates"],
- vytvoříme si složku templates a uvnitř složky templates vytvoříme složku registration
- ve složce registration vytvoříme soubor login.html (celá cesta je templates/registration/login.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{form.as_p}}
<button type="submit"> Prihlasit</button>
</form>
</body>
</html>
- do settings.py přídáme na konec následující řádky
LOGIN_REDIRECT_URL = "/"
LOGOUT_REDIRECT_URL = "/"
- vytvoříme si super uživatele na testování
python manage.py createsuperuser
- po vytvoření super uživatele spustíme zase server
python manage.py runserver
- vytovříme si home.html ve složce templates
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Login systém</h1>
{% if user.is_authenticated %}
Ahoj, {{ user.username}}
{% else %}
<p>Nejsi přihlášený</p>
<a href="{% url 'login'%}">Prihlasit</a>
{% endif %}
</body>
</html>
- upravíme urls.py následovně:
from django.contrib import admin
from django.urls import path, include
from django.views.generic.base import TemplateView
urlpatterns = [
path('admin/', admin.site.urls),
path("ucet/", include("django.contrib.auth.urls")),
path("",TemplateView.as_view(template_name="home.html"), name="home")
]