Django. Перший додаток

Захотілося мені розповісти як використовувати зв'язокManyToMany, почав я значить писати пост, але так як я хотів його деталізувати, то він занадто розрісся. І я вирішив спочатку написати пост про те, як створювати перший проект та додаток наDjango, щоб потім посилатися сюди.

-- починав я цей пост писати ще того року, та всі руки не доходили його закінчити, дякую vasa_c за терпіння

Встановлюємо Django

Заходимо на сторінку завантаження офіційного сайту, завантажуємо Django 1.1.1 (або вище). Далі, як і в інструкції:

Все, джанго встановлено! Оскільки ми будемо працювати з MySQL, то вам потрібно встановити бібліотеку py-mysqldb, що представляє собою інтерфейс до MySQL.

Для Ubuntu:

Для FreeBSD

А для Windows можна завантажити тут.

Створюємо наш перший проект

Припустимо, що ім'я проекту у нас буде "myproject":

Тепер створіть собі нову БД "myproject":

І відредагуйте "/www/myproject/settings.py", замінивши лише відповідні частини:

Навіщо я ставлю на початку рядка "#

Створюємо наш перший додаток

Після того, як ви створили проект, треба створити програму, якщо у вас проект складається з однієї програми - можете його назвати "main".

Створюємо додаток "blog":

Файл моделі

Тепер перейдемо до розробки моделі нашої програми, відредагуємо "/www/myproject/blog/models.py". У нас буде поки одна сутність, це Пости в Блозі:

Ви можете все що пов'язано з адмінкою винести вadmins.py і імпортувати його, щоб позбавитися зайвого коду Після створення файлу моделей, вам необхідно запустити синхронізацію з БД, для того, щоб створилися структури даних:

Для детальнішого вивчення команд manage.pyвведіть:

Ви також можете створювати свої команди, але про це поговоримо не цього разу.

Коли ви створите новий клас моделі вам потрібно буде знову запустити syncdb. Якщо ви внесли зміни до вже синхронізованого додатка, а саме до його моделі, то syncdb НЕ внесе їх у вашу БД, для цього використовуйте sqlall та інші sql* команди:

Або спробуйте розширення для Django Django Evolution (для цього необхідно встановити його в вашу систему і додати в INSTALLED_APPS - "django_evolution").

Файл урлів

Для навігації за вашим проектом вам потрібен роутер (URL диспетчер). Відредагуємо "/www/myproject/urls.py":

Ви, звичайно, можете відредагувати локальний для програми "blog" - urls.py ("/www/myproject/blog/urls.py"), але тоді вам треба буде імпортувати "/www/myproject/blog/urls.py" в кореневому " urls.py". Або ви можете визначити його в settings.py (ROOT_URLCONF).

Файл завірюхи

Висновок у шаблоні

У Django дуже потужний і гнучкий шаблонизатор, у нього навіть є аналог на PHP -Twig, що говорить про його зручність (був би незручним - не копіювали б), хочаTwig по чутках сильно гірше. Однак, є більш крутий шаблонизатор для Django - Jinja2, з більш високою продуктивністю та більш гнучкими можливостями. ОписуватиJinja я не буду, адже не це мета цієї посади, тому ділюся тільки посиланнями:

З більш повними можливостямиDjango Template ви можете познайомитись на офіційній сторінці.

УDjango Template підтримується успадкування, тому ми напишемо загальний шаблон і використовуватимемо йогоbase.html :

Шаблон виведення списку постівlist.html :

Шаблон виведення одного записуsingle.html :

Тепер налаштуємо Nginx для того,щоб запускаючи "manage.py runserver" нам не прописувати порт в URL і використовувати нормальне ім'я хоста, хоча ви може цілком без цього обійтися. Але я дуже рекомендую використовувати Nginx.

Додати в "/etc/hosts" ваш хост:

І перезавантажити Nginx:

Запускаємо веб-сервер проекту на 8001 порту, тому що ми туди проксуватимемо з Nginx:

Ви можете завантажити архів з вихідними проектами тут