π Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ - ΡΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²!
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ "Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ " Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΠΈΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²Π°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ:
import requests
url = "ΡΡΡΠ»ΠΊΠ°_Π½Π°_ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅_ΠΊΠ½ΠΈΠ³ΠΈ"
response = requests.get(url)
with open("django_2_book.pdf", "wb") as f:
f.write(response.content)
print("ΠΠ½ΠΈΠ³Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΊΠ°ΡΠ°Π½Π°!")
ΠΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ "ΡΡΡΠ»ΠΊΠ°_Π½Π°_ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅_ΠΊΠ½ΠΈΠ³ΠΈ" Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠ½ΠΈΠ³Ρ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠ½ΠΈΠ³Π° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°ΡΠ°Π½Π° ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° Π² ΡΠ°ΠΉΠ»Π΅ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "django_2_book.pdf".
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ?
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅!
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ "Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ", Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
1. ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ "Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ " Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Django. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΉ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΌΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΈ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ HTML, PDF ΠΈΠ»ΠΈ EPUB Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Django: https://docs.djangoproject.com/en/2.0/.
2. GitHub ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° GitHub, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΊΠ½ΠΈΠ³Ρ "Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ " Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° GitHub, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° ΠΊΠ½ΠΈΠ³ΠΈ "Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ " ΠΈ ΡΠΊΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git:
git clone https://github.com/PacktPublishing/Django-2-by-Example.git
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²Π΅ΡΡ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½ Π½Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
3. ΠΠ½Π»Π°ΠΉΠ½ ΡΠ΅ΡΡΡΡΡ
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ ΠΊΠ½ΠΈΠ³Ρ "Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ " Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΡΡΡΠ°Ρ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΠΉΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΈ ΠΈΠ·ΡΡΠΈΡΡ ΠΊΠ½ΠΈΠ³Ρ: https://allitebooks.org/?s=django.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Django
Π§ΡΠΎΠ±Ρ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Django ΠΈ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅Ρ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Django:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
publication_date = models.DateField()
price = models.DecimalField(decimal_places=2, max_digits=5)
ΠΡΠΈΠΌΠ΅Ρ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Django:
from django.shortcuts import render
from django.http import HttpResponse
def book_list(request):
books = Book.objects.all()
return render(request, 'book_list.html', {'books': books})
ΠΡΠΈΠΌΠ΅Ρ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π°
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° HTML-ΡΠ°Π±Π»ΠΎΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Django:
<html>
<head>
<title>Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠ½ΠΈΠ³</title>
</head>
<body>
<h1>Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠ½ΠΈΠ³</h1>
<ul>
{% for book in books %}
<li>{{ book.title }} - {{ book.author }}</li>
{% endfor %}
</ul>
</body>
</html>
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ "Django 2 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ " ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Django, GitHub ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ» Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Django ΠΈ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
Π£ΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Django 2!