Автор оригинала: Usman Ibrahim.
Я создал этот пост, чтобы новичкам было легко начать использовать Django для создания веб-проекта. Django-это веб-фреймворк python, широко известный своей простотой, и он предоставляет так много дополнительных функций, не предлагаемых другими фреймворками. Согласно Википедия , Django облегчает создание сложных веб-сайтов, управляемых базами данных. Он также подчеркивает возможность повторного использования и подключаемость компонентов, быстрое развитие и принцип DRY (не повторяйтесь).
Чтобы начать работу с Django, вам необходимо установить Python и настроить виртуальную среду. Если вы этого не сделаете, проверьте эти ссылки ( Python и virtualenv ) для получения инструкций.
Следующие шаги помогут нам создать реальный проект Django.
1. Создание виртуальной среды — Нам нужно создать виртуальную среду, в которой мы установим все наши зависимости. Для этого мы запускаем:
mkvirtualenv my_project # Make a new virtual environment named my_project
Примечание: Вы можете изменить название проекта на то, что вам нравится
Ваша виртуальная среда может быть не активирована по умолчанию. Чтобы активировать его, выполните:
workon my_project # Activate the my_project virtual environment
2. Установка зависимостей — Поскольку мы создали и активировали нашу виртуальную среду, нам необходимо установить зависимости для нашего проекта. Для этого мы выполним следующую команду:
pip install django # This would install the django package to the virtual environment
3. Войдите в рабочий каталог. Возможно, вам потребуется создать каталог и компакт-диск в каталог, например:
mkdir my_django_project # Create my_django_project directory cd my_django_project # Change working directory into my_django_project directory
4. Как только вы окажетесь в своем рабочем каталоге, вам нужно будет создать новый проект Django с помощью пакета Django, который мы установили на шаге 3. Для этого выполните следующую команду:
django-admin startproject helloworld_project # Create a new project named helloworld_project
В случае успеха вы увидите новую папку hello world_project, добавленную в ваш рабочий каталог.
Ваша новая структура папок должна выглядеть примерно так:
└── helloworld_project ├── helloworld_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py
Это означает, что существует внешняя папка helloworld_project, содержащая manage.py файл, а также внутренняя папка helloworld_project. Внутренняя папка содержит основные файлы настройки проекта, такие как URL-адреса вашего приложения, настройки и конфигурации приложения.
5. Далее мы помещаем компакт-диск во внешнюю папку helloworld_project и выполняем следующую команду:
python manage.py runserver # Run the django server
В случае успеха вы должны что-то подобное этому:
Performing system checks... System check identified no issues (0 silenced). You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. June 17, 2017 - 12:22:32 Django version 1.11.2, using settings 'helloworld_project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Чтобы подавить предупреждение о неприменимой миграции, остановите сервер с помощью CONTROL-C и выполните команду
python manage.py migrate
Затем посетите сервер по адресу http://127.0.0.1:8000/ в вашем любимом браузере. Вы должны увидеть страницу, похожую на эту:
6. Следующее-создать приложение в нашем проекте Django. Именно здесь мы будем разрабатывать и визуализировать нашу страницу Hello World. Итак, давайте создадим новое приложение под названием my_app (или как вам больше нравится). Перед созданием приложения убедитесь, что вы находитесь во внешнем проекте hello_world, где у вас есть manage.py файл. Чтобы создать приложение, мы запускаем эту команду:
django-admin startapp my_app # Create a new django app named my_app or python manage.py startapp my_app # Create a new django app named my_app
Если все вышеперечисленное успешно, структура каталогов для внешней папки hello_world должна выглядеть примерно так:
├── db.sqlite3 ├── helloworld_project │ ├── __init__.py │ ├── __init__.pyc │ ├── settings.py │ ├── settings.pyc │ ├── urls.py │ ├── urls.pyc │ ├── wsgi.py │ └── wsgi.pyc ├── manage.py └── my_app ├── __init__.py ├── admin.py ├── apps.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py └── views.py
Прежде чем двигаться дальше, нам нужно добавить новое приложение, которое мы создали, в список установленных приложений в нашем файле настроек, чтобы Django знал об этом и мог ссылаться на него. Для этого откройте helloworld_project/settings.py файл в текстовом редакторе и добавьте my_app в список INSTALLED_APPS. Например, если начальное значение для INSTALLED_APPS было:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
После добавления приложения my_app оно должно выглядеть примерно так:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'my_app', ]
7. Далее нам нужно создать папку шаблонов в нашем каталоге приложений. Именно здесь будут жить наши файлы шаблонов (html-файлы). Перед созданием папки шаблонов убедитесь, что вы находитесь в каталоге my_app. Для этого выполните следующие действия (из внешней папки проекта hello_world):
cd my_app # Change directory into the new my_app directory mkdir templates # Make a new directory named templates
8. После создания папки шаблонов мы создадим новый html-файл с именем index.html. Именно здесь будет жить наш html-код. Это может быть достигнуто путем ввода следующего набора команд:
cd templates # Change directory into the templates directory touch index.html # Create a new index.html file
Затем откройте index.html файл с любым текстовым редактором и вставьте в него следующее содержимое:
Home Page Hello world
9. Следующее, что нужно сделать, это настроить наш маршрут/представление для отображения нашей недавно созданной html-страницы. Для этого введите эту команду из каталога шаблонов:
cd .. # Get out of the templates directory into my_app directory
Находясь в каталоге my_app, откройте views.py файл с вашим любимым текстовым редактором и вставьте следующий фрагмент кода:
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.shortcuts import render from django.views.generic import TemplateView class HomeView(TemplateView): template_name = 'index.html'
Выше приведено то, что известно как представление Django. Представление определяет, что будет отображаться пользователю на заданном маршруте. В этом случае мы говорим Django создать новое представление, которое отображает html-файл, который мы создали изначально. Но мы не говорили Джанго использовать этот вид для любого маршрута, поэтому Джанго не знает, когда использовать этот вид. Следующее, что нам нужно сделать, – это настроить маршрут для сопоставления с этим представлением. Это может быть маршрут индекса, домашний маршрут ( ‘/home’) и т. Д.
Чтобы отобразить ваш маршрут на наш вид, нам нужно отредактировать ваш urls.py файл, расположенный во внутреннем проекте hello_world. Чтобы добраться до папки, содержащей urls.py файл из текущей папки (my_app), введите следующую команду:
cd .. # Get out from my_app folder into the outer helloworld_project folder cd helloworld_project # Change directory into the inner helloworld_project folder
10. Далее мы откроем urls.py файл с вашим любимым текстовым редактором. Мы должны увидеть что-то похожее на это:
"""helloworld_project URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), ]
Далее мы модифицируем urls.py файл такой, что он выглядит следующим образом:
"""helloworld_project URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin from my_app.views import HomeView urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', HomeView.as_view()), ]
Обратите внимание, что мы только что добавили эти две строки:
from my_app.views import HomeView # Import the new view we created url(r'^$', HomeView.as_view()) # Map the HomeView to the index route
Затем мы выходим из текущей папки (внутренняя папка helloworld_project) во внешний helloworld_project и снова запускаем сервер (если он больше не работает). Чтобы запустить сервер, нам нужна эта команда:
cd .. # Get into the outer helloworld_project directory python manage.py runserver # Rerun the server
Вы должны увидеть страницу Hello World, похожую на эту:
И ваше приложение запущено и работает! Если у вас есть какие-либо другие вопросы, пожалуйста, прокомментируйте ниже!