Рубрики
Без рубрики

Создание приложения Hello World с помощью Python/Django

Прочитайте этот пост для начинающих, чтобы начать использовать Django для создания веб-проектов!

Автор оригинала: 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/ в вашем любимом браузере. Вы должны увидеть страницу, похожую на эту:

Снимок экрана 2017-06-17 в 1.27.56 вечера.png

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, похожую на эту:

Снимок экрана 2017-06-17 в 3.09.07 PM.png

И ваше приложение запущено и работает! Если у вас есть какие-либо другие вопросы, пожалуйста, прокомментируйте ниже!