UPDATE:
Чтобы сделать установку быстрый способ, почитайте другие ответ.
структура папок
- PROJECT_WRAPPER - это будет держать все, в том числе PS
- DJANGO_PROJECT - это будет держать код
- DJANGO_APP - главное приложение будет иметь это имя
Везде, где вы видите их, замените своими настоящими именами !!!
Виртуальный конв
Если у вас нет virtualenv
, что вам нужно, чтобы получить его. Это позволит вам иметь отдельные установки программного обеспечения для каждого проекта:
pip install virtualenv
мы создаем наш проект:
cd ~
mkdir PROJECT_WRAPPER && cd PROJECT_WRAPPER
virtualenv venv
Теперь у вас есть отдельная папка, которая будет содержать независимые установки и версию питона, джанго и т. д.
Активирует и и начать работать над проектом следующим образом:
source venv/bin/activate
Postrges приложение
Просто прежде чем мы продолжим, мы установим postgres.app. Захватите его от: http://postgresapp.com/
Установите.
Мы теперь подключить нашу окружающую среду с ним:
PATH=/Applications/Postgres.app/Contents/MacOS/bin/:$PATH
Requirements.txt
Теперь нам нужно будет установить следующие вещи:
- Python, Django - без объяснений требуется
- South - Миграция базы данных (версия Dev Django не требует этого)
- Джанго-Toolbelt - требуется Heroku и включает в себя все необходимое для Heroku
- Psycopg - базы данных Postgres
- simplejson, mixpanel - это не обязательно, вы можете пропустить, если вам не нравится
Так создать файл requirements.txt, мы получим, что готов из моего репозитория мерзавца:
clone https://raw2.github.com/mgpepe/django-heroku-15/master/requirements.txt -o requirements.txt
Теперь с помощью одной команды мы установим все из нашего requirements.txt:
pip install -r requirements.txt
Отлично, теперь мы можем убедиться, что мы имеем Джанго с:
python -c "import django; print(django.get_version())"
Запустите Django проекта
Давайте начнем проект с этой линией и не забудьте точку в конец:
django-admin.py startproject DJANGO_PROJECT .
Теперь, если вы наберете ls
вы должны увидеть папку с именем проекта тха t содержит ваш проект Django.
Чтобы убедиться, что все работает запустить:
python manage.py runserver
DATABASE
Пропустите Postgres приложение.
Создание базы данных с (я использовал мое имя OSX):
createdb YOUR_DATABASE_NAME --owner=YOUR_OSX_USERNAME
Измените DATABASES
выглядеть следующим образом:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'YOUR_DATABASE_NAME',
'USER': 'YOUR_OSX_USERNAME',
'PASSWORD': 'YOUR_DATABASE_PASSWORD', #might be empty string ''
'HOST': '127.0.0.1',
# 'PORT': '5432',
}
}
А также давайте подключить Южные миграции. Ваш INSTALLED_APPS
должен выглядеть так:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
)
Изменение SECRET_KEY
переменной на что-то другое, чем то, что она есть.
Теперь, если все было хорошо, вы должны быть в состоянии создать первые таблицы с:
python manage.py syncdb
ПЕРВЫЙ APP
Теперь сделайте свое первое приложение в проекте
python manage.py startapp DJANGO_APP
в файл: ~/PROJECT_WRAPPER/DJANGO_PROJECT/settings.py
добавить DJANGO_APP
к списку в переменной INSTALLED_APPS
. Должно выглядеть так:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'DJANGO_APP',
)
ШАБЛОНЫ
в настройках файла добавьте строку:
TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
Для того, чтобы шаблоны должны быть хорошо организованы и работают, мы будем копировать base.html в одна папка и остальные шаблоны в самом приложении:
cd ~/PROJECT_WRAPPER/
mkdir templates
curl https://raw2.github.com/mgpepe/django-heroku-15/master/templates/base.html -o base.html
Остальные шаблоны:
cd ~/PROJECT_WRAPPER/DJANGO_APP/
mkdir templates && cd templates
mkdir DJANGO_APP
curl https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/templates/DjMainApp/changepass.html -o changepass.html
curl https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/templates/DjMainApp/forgot_pass.html -o forgot_pass.html
curl https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/templates/DjMainApp/home.html -o home.html
curl https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/templates/DjMainApp/login.html -o login.html
curl https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/templates/DjMainApp/logout.html -o logout.html
curl https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/templates/DjMainApp/registration.html -o registration.html
curl https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/templates/DjMainApp/splash.html -o splash.html
AUTH СИСТЕМА С ПОЧТОЙ
Поскольку это было в последнее время модно использовать электронную почту, а не имя пользователя, мы будем делать это.
* ПРИМЕЧАНИЕ. Если вы решите не использовать его, вы можете пропустить этот шаг, но вы должны отредактировать представления и шаблоны, чтобы использовать имя пользователя вместо электронной почты. *
В настройках добавьте следующую строку:
AUTHENTICATION_BACKENDS = (DJANGO_PROJECT.backends.EmailAuthBackend’,)
затем скопировать файл backends.py в нашем каталоге проекта:
cd ~/PROJECT_WRAPPER/DJANGO_PROJECT/
clone https://raw2.github.com/mgpepe/django-heroku-15/master/DjangoHerokuIn15/backends.py -o backends.py
Heroku Локально
Вы можете имитировать Heroku работает на ваш компьютер с Форман.Давайте создадим простейший файл конфигурации:
cd ~/PROJECT_WRAPPER
echo "web: gunicorn DJANGO_PROJECT.wsgi" > Procfile
foreman start
Теперь, когда вы видите, что работает без ошибок остановить его с CTRL+C
в настройках всех путей в нижней части дополнения:
# HEROKU
###########################
# Parse database configuration from $DATABASE_URL
if os.environ.has_key('DATABASE_URL'):
import dj_database_url
DATABASES['default'] = dj_database_url.config()
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# Allow all host headers
ALLOWED_HOSTS = ['*']
В ваших DJANGO_PROJECT/wsgi.py
файл и добавить нижеследующее:
from dj_static import Cling
application = Cling(get_wsgi_application())
СТАТИЧЕСКИЕ ФАЙЛЫ
В идеале вы должны статичные файлы сервера из Amazon или что-то в этом роде. Но для простых сайтов вы можете использовать Django. Для его настройки необходимо добавить это в файл настроек:
# HEROKU STATIC ASSETS CONFIGURATION
################################
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
и поместить все статические файлы в определенную папку. Сначала зайдите в папку проекта с чем-то вроде:
cd ~/PROJECT_WRAPPER/DJANGO_PROJECT/
и теперь вы можете просто скопировать/вставить остальные:
mkdir static && cd static
mkdir css && cd css
clone https://raw2.github.com/mgpepe/django-heroku-15/master/DjangoHerokuIn15/static/css/bootstrap.min.css -o bootstrap.min.css
clone https://raw2.github.com/mgpepe/django-heroku-15/master/DjangoHerokuIn15/static/css/styles.css -o styles.css
cd ..
mkdir js && cd js
clone https://raw2.github.com/mgpepe/django-heroku-15/master/DjangoHerokuIn15/static/js/bootstrap.min.js -o bootstrap.min.js
cd ..
mkdir img && cd img
В этой последней папке, вы поставите все изображения вам нужно.
URL НАСТРОЙКИ И МНЕНИЯ
В urls.py скопировать эти строки перед 'например':
url(r'^$', "pmfmain.views.splash", name="splash"),
url(r'^login$', "pmfmain.views.login_view", name="login"),
url(r'^signup$', "pmfmain.views.register", name="signup"),
url(r'^forgot$', "pmfmain.views.forgot_pass", name="forgotmypass"),
url(r'^logout$', "pmfmain.views.logout_user", name="logout"),
url(r'^dashboard$', "pmfmain.views.home", name="home”),
затем скопировать views.py из моего GitHub репо в папку DJANGO_PROJECT:
cd ~/PROJECT_WRAPPER/DJANGO_APP/
rm views.py
clone https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/views.py -o views.py
Найти & заменить замену DjMainApp
на ваше настоящее имя DJANGO_APP на протяжении всего views.py
клон https://raw2.github.com/mgpepe/django-heroku-15/master/DjMainApp/forms.py -o forms.py
GIT
Некоторые файлы не должны быть в мерзавца, так что давайте установить конфигурации для этого:
echo -e "venv\n*.pyc\n*.log\n*.pot\nstaticfiles" > .gitignore
и теперь позволяет совершать:
git init
git add .
git commit -m ‘initial commit of django app’
Создайте репозиторий в git, затем скопируйте git url (тот, который e nds в .git). Тогда:
git remote add origin THE_URL
git pull origin master
Bitbucket АЛЬТЕРНАТИВА
Если вы не хотите платить за GitHub, и вы хотите, чтобы ваш репозиторий частных, вы можете использовать Bitbucket.
Войти в свою учетную запись Создать новый репозиторий Нажми добавить существующий проект
git remote add origin https://[email protected]/USERNAME/REPOSITORY_NAME.git
НЕСКОЛЬКО Heroku Accounts & КЛЮЧЕЙ
Даже если вы никогда не должны иметь несколько учетных записи Heroku, это легкий путь настроить и использовать его даже для одной учетной записи. Так мы идем:
cd ~
heroku plugins:install git://github.com/ddollar/heroku-accounts.git
оных счет Heroku с:
heroku accounts:add personal
- Введите учетные данные Heroku.
- Email: YOUR_HEROKU_EMAIL
- Пароль: YOUR_HEROKU_PASSWORD
Он говорит, что это в консоли, и вы должны это сделать:
Добавьте следующие строки в ~/.ssh/конфигурации
Host heroku.personal
HostName heroku.com
IdentityFile /PATH/TO/PRIVATE/KEY
IdentitiesOnly yes
Перейдите в папку проекта с чем-то вроде:
cd ~/PROJECT_WRAPPER
, а затем установить новую учетную запись, как:
heroku accounts:set personal
Чтобы создать новый ключ SSH:
ssh-keygen -t rsa
При запросе имени, написать полный путь и имя, как показано на рисунке. затем введите пароль или оставьте пустой
Затем добавьте ключи и к вашему OSX и Heroku:
heroku keys:add ~/.ssh/YOUR_KEY_NAME.pub
ssh-add ~/.ssh/YOUR_KEY_NAME
развертывающей Heroku ФАЙЛЫ
Теперь, когда у вас есть ключи в порядке, вы должны быть в состоянии сделать heroku apps
и посмотреть, что приложений нет. Чтобы добавить свое первое приложение:
heroku apps:create YOUR_APP_NAME
И теперь, чтобы загрузить на сервер:
git push heroku master
теперь переходим к YOUR_APP_NAME.herokuapp.com, чтобы увидеть свой сайт!
DOMAIN НАСТРОЙКА
остается объяснить, если кто-то хочет, дайте мне знать
ПРИМЕЧАНИЯ
Углубленное документация по адресу:
Я согласен с @ MilenA.Radev здесь, это пошаговое руководство и будет более подходящим для github.io или другой такой платформы. Во всяком случае, это должен быть хороший ресурс для поиска людей на SO. –