Ако следваш правилата всичко работи без досадни конфигурации
През целия семестър сме ви обяснявали, че има разлика между двете.
Докато ползвате Django това ще боли... много
$ pip install django
$ django-admin.py startproject haitter
Ако сте чували за MVC:
class User(models.Model):
username = models.CharField(max_length=30, unique=True)
first_name = models.CharField(max_length=30, blank=True)
last_name = models.CharField(max_length=30, blank=True)
email = models.EmailField(blank=True)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
unique = True # не може да се повтаря
blank = True # не е задължително Django да приеме стойност за него
null = True # базата не изисква стойност за него
default = "Панда" # стойност по подразбиране
models.CharField(max_length=32)
models.TextField()
models.IntegerField()
models.BooleanField()
models.DateTimeField()
models.FileField()
models.ImageField()
models.EmailField()
...
from django.shortcuts import render
def calculator(request):
if request.method == 'POST':
x = int(request.POST['x'])
y = int(request.POST['y'])
result = x + y
return render(request, 'calculator.html', locals())
{{ title }}
{{ user.first_name }}
{% if a > 5 %} а е голямо! {% endif %}
{% for user in users %} {{ user.first_name }} {% endfor %}
Моделът помни.
Темплейтът го показва.
А view-то мисли.
from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^articles/([0-9]{4})/$', 'news.views.year_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', 'news.views.month_archive'),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', 'news.views.article_detail'),
)
$ python manage.py startapp haikus
-> tree
.
├── haitter
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── haikus
│ ├── admin.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── manage.py
python manage.py makemigrations haikus # Създава миграция за този app
python manage.py migrate # Изпълнява всички миграции