π± ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Django: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Django ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³Π°ΠΌ:
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
python manage.py startapp <ΠΈΠΌΡ_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ>
, Π³Π΄Π΅ <ΠΈΠΌΡ_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ> - ΡΡΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. - ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ°ΠΉΠ»
settings.py
Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. - Π ΡΠ΅ΠΊΡΠΈΠΈ
INSTALLED_APPS
Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ'<ΠΈΠΌΡ_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ>'
, Π³Π΄Π΅ <ΠΈΠΌΡ_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ> - ΡΡΠΎ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Django:
python manage.py startapp myapp
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ°Π³ΠΎΠ², Π²Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Django.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Django
ΠΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Django ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Django Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΡΠ°Π³ΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ.
Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
python manage.py startapp ΠΈΠΌΡ_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌΡ_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π±Π»ΠΎΠ³Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΡ "blog".
Π¨Π°Π³ 2: ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» settings.py Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ INSTALLED_APPS. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ:
INSTALLED_APPS = [
...
'ΠΈΠΌΡ_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ',
]
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ urls.py Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
ΠΠΎΠ΄Π΅Π»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» models.py Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ Π±Π»ΠΎΠ³Π°:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(auto_now_add=True)
ΠΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄:
python manage.py makemigrations
python manage.py migrate
Π¨Π°Π³ 4: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» views.py Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ:
from django.shortcuts import render
from .models import Post
def blog_home(request):
posts = Post.objects.all()
return render(request, 'blog/home.html', {'posts': posts})
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π±Π»ΠΎΠ³Π° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΈΡ Π² ΡΠ°Π±Π»ΠΎΠ½ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ home.html.
Π¨Π°Π³ 5: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΠΎΠ²
ΠΠ°ΡΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ². ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» urls.py Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΠΌΠ°ΡΡΡΡΡΡ:
from django.urls import path
from . import views
urlpatterns = [
path('', views.blog_home, name='blog-home'),
]
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠΉ URL-Π°Π΄ΡΠ΅Ρ Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ blog_home.
Π¨Π°Π³ 6: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ templates Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Π² ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» home.html Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
<h1>ΠΠ»ΠΎΠ³</h1>
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
{% endfor %}
Π¨Π°Π³ 7: ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Π³ΠΎΡΠΎΠ²ΠΎ ΠΊ Π·Π°ΠΏΡΡΠΊΡ. ΠΠ΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
python manage.py runserver
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://localhost:8000. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ²ΠΎΠΉ Π±Π»ΠΎΠ³ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Π²ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Django. Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠΌ ΡΠ°Π³Π°ΠΌ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΡΠ½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Django.
Π£Π΄Π°ΡΠΈ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ!