π Django 5μ λλ΅μ μΈ λͺ¨λ κ²
Djangoλ λκ° λ§λ€μλ?β
Djangoλ λΉ λ₯΄κ² λ³ννλ λ΄μ€λ£Έ νκ²½μμ κ°λ°λμκΈ° λλ¬Έμ μΌλ°μ μΈ μΉ κ°λ° μμ μ λΉ λ₯΄κ³ μ½κ² μνν μ μλλ‘ μ€κ³λμμ΅λλ€
Django λͺ¨λΈ μ€κ³β
Django λͺ¨λΈ κ°λ¨ν μμβ
from django.db import models
class Reporter(models.Model):
full_name = models.CharField(max_length=70)
def __str__(self):
return self.full_name
class Article(models.Model):
pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)
def __str__(self):
return self.headline
Djangoμ ν΅μ¬ Django shellβ
Django shellμ Django νλ‘μ νΈμμ λͺ¨λΈμ μ½κ² μ‘°μν μ μλ νΈλ¦¬ν λꡬμ λλ€. μ΄λ₯Ό ν΅ν΄ λͺ¨λΈμ μ½κ² μ‘°ννκ³ μμ ν μ μμ΅λλ€.
python manage.py shell
# Import the models we created from our "news" app
>>> from news.models import Article, Reporter
# No reporters are in the system yet.
>>> Reporter.objects.all()
<QuerySet []>
μ€μ λ‘ λͺ¨λΈμ μ€κ³νκ³ μν¬νΈν΄μ ν μ€νΈ ν΄λ³Ό λλ μ¬μ©λκ³ λκ±°λΉμ΄λ κΈ΄κΈ μμ μμλ νμ©ν μ μμ΅λλ€.
- Django μμ μ€ν¬λ¦½νΈλ₯Ό μ€νν μ μλλ°
# my_script.py νμΌ μμ±
# my_script.py
from myapp.models import MyModel
from django.utils import timezone
print("Updating status for objects created before today...")
count = MyModel.objects.filter(created_at__lt=timezone.now().date()).update(status='archived')
print(f"{count} objects updated.")
python manage.py shell < my_script.py
μ΄λ κ² νλ©΄ μ€ν¬λ¦½νΈ λ΄μ©μ΄ Django νκ²½μμ μμ°¨μ μΌλ‘ μ€νλ¨
Djangoμμ settings.py νμΌμ μ¬λ¬ νκ²½(κ°λ°, μ΄μ λ±)μΌλ‘ λλμ΄ κ΄λ¦¬ν λ, python manage.py shell λͺ λ Ήμ΄κ° μ΄λ€ μ€μ νμΌμ λ‘λν μ§λ DJANGO_SETTINGS_MODULE νκ²½ λ³μμ μν΄ κ²°μ
μλ₯Όλ€μ΄ νμΌ κ΅¬μ‘°κ° μλμ κ°λ€λ©΄?
myproject/
βββ manage.py
βββ myproject/
βββ __init__.py
βββ settings/
β βββ __init__.py # μ΄ νμΌμ λΉμ΄μκ±°λ κΈ°λ³Έ μ€μ μ μν¬νΈ
β βββ base.py # κ³΅ν΅ κΈ°λ³Έ μ€μ
β βββ development.py # κ°λ° νκ²½ μ€μ (base.py μν¬νΈ λ° μ¬μ μ)
β βββ production.py # μ΄μ νκ²½ μ€μ (base.py μν¬νΈ λ° μ¬μ μ)
βββ urls.py
βββ wsgi.py
μ΄ νμΌλ€μ΄ κΈ°λ³Έ settings.pyλ base.pyλ₯Ό μμλ°λ ꡬ쑰λΌλ©΄,
Shellμ μ€νν λ λͺ μμ μΌλ‘ DJANGO_SETTINGS_MODULE νκ²½ λ³μλ₯Ό μ€μ ν΄μ£Όμ΄μΌ ν΄λΉ νκ²½μ μ€μ μ΄ μ μ©
URL μ€κ³λμμ΅λβ
Djangoλ μλ¦λ€μ΄ URL μ€κ³λ₯Ό μ₯λ €νλ©° URLμ .php λ .asp κ°μ λΆνμν λ΄μ©λ€μ λ£μ§ μμ΅λλ€. (JAVA 곡νκ΅μΈ λνλ―Όκ΅μμλ .do μ κ°μ κ²λ€μ μμ£Ό λ³Ό μ μμ΅λλ€)