π§ ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Django: Π¨Π°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Django, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΡ ΡΠ°Π³ΠΈ:
- ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ.
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» manage.py ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π½Π΅ΠΌ ΡΡΠ°ΡΠΎΠ΅ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ.
- ΠΠ½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ» settings.py Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ Π΅Π³ΠΎ.
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» settings.py ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ROOT_URLCONF = 'ΡΡΠ°ΡΠΎΠ΅_ΠΈΠΌΡ.urls' Π½Π° ROOT_URLCONF = 'Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ.urls'.
- Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Django ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½!
ΠΡΠΈΠΌΠ΅Ρ:
import os
# ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΏΠ°ΠΏΠΊΡ
os.rename("ΡΡΠ°ΡΠΎΠ΅_ΠΈΠΌΡ", "Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ")
# ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² manage.py
manage_file = open("manage.py", "r+")
file_contents = manage_file.read()
file_contents = file_contents.replace("ΡΡΠ°ΡΠΎΠ΅_ΠΈΠΌΡ", "Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ")
manage_file.seek(0)
manage_file.write(file_contents)
manage_file.truncate()
manage_file.close()
# ΠΠ°ΠΌΠ΅Π½ΡΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° settings.py
os.rename("Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ/Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅_ΠΏΡΠΎΠ΅ΠΊΡΠ°/settings.py", "Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ/Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅_ΠΏΡΠΎΠ΅ΠΊΡΠ°/Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ.py")
# ΠΠ°ΠΌΠ΅Π½ΡΠ΅ΠΌ ROOT_URLCONF Π² Π½ΠΎΠ²ΠΎΠΌ settings.py
settings_file = open("Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ/Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅_ΠΏΡΠΎΠ΅ΠΊΡΠ°/Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ.py", "r+")
file_contents = settings_file.read()
file_contents = file_contents.replace("ROOT_URLCONF = 'ΡΡΠ°ΡΠΎΠ΅_ΠΈΠΌΡ.urls'", "ROOT_URLCONF = 'Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ.urls'")
settings_file.seek(0)
settings_file.write(file_contents)
settings_file.truncate()
settings_file.close()
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Django
ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΡΡΡ ΡΠ°Π³ΠΎΠ².
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
- Π£ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Django Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
- ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Django ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ django-admin startproject project_name, Π³Π΄Π΅ project_name - ΡΡΠΎ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π¨Π°Π³ 1: ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Django. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
python manage.py runserver
ΠΠ»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ Ctrl+C Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
Π¨Π°Π³ 2: ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ "old_project", Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² "new_project".
Π¨Π°Π³ 3: ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠ°ΠΉΠ»Π΅ manage.py
ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» manage.py Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» manage.py Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "old_project.settings")
Π½Π°:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "new_project.settings")
ΠΠ΄Π΅ΡΡ Π²Ρ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ "old_project" Π½Π° "new_project", ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π·ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π¨Π°Π³ 4: ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠ°ΠΉΠ»Π°Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ
ΠΠ°Π»Π΅Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠ°ΠΉΠ»Π°Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Django. Π ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ settings ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» base.py ΠΈΠ»ΠΈ settings.py (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°).
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_NAME = 'old_project' # ΠΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π½Π°:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_NAME = 'new_project' # ΠΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅.
Π¨Π°Π³ 5: ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
python manage.py runserver
ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΠ»ΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Django.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Django - ΡΡΠΎ ΠΏΡΠΎΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, ΡΠ»Π΅Π΄ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΡΡΠΌ ΡΠ°Π³Π°ΠΌ. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π² ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
Π£Π΄Π°ΡΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ Django!