- Django applicationni herokuga deploy qilish
- Muhitni sozlash
- settings.py faylida o'zgartirishlar
- Gitignore faylida o'zgartirishlar
- Procfile fayli
- requirements.txt fayli
- Heroku deploy qismi
- Muhitni sozlash
- settings.py faylida o'zgartirishlar
- Procfile fayli
- requirements.txt fayli
- Heroku deploy qismi
- Heroku uchun account ochish saytga kirib account ochish uchun bu yerga bosing.
- Heroku CLI ni o'rnatish Heroku CLI saytida ko'rsatilgan qo'llanma bo'yicha o'rnatishni bajarish kerak.
- Heroku CLI ni ishga tushirish
terminalga
heroku login
yozib enter tugmasini bosing. - Heroku CLI ni tekshirish
terminalga
heroku --version
yozib enter tugmasini bosing.
- django
- gunicorn
- psycopg2-binary
- whitenoise
- dj-database-url
- environs
Paketlarni o'rnatish uchun terminalga pip install django gunicorn psycopg2-binary whitenoise dj-database-url environs
yozib enter tugmasini bosing.
yoki pip install -r requirements.txt
yozib enter tugmasini bosing.
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
...
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
INSTALLED_APPS = [
'whitenoise.runserver_nostatic',
...
]
Asosiy o'zgarishlar:
environment variable larini o'qish uchun environs
paketini import qilib olamiz.
from environs import Env
env = Env()
env.read_env()
1. DEBUG = env.bool('DJANGO_DEBUG', default=False)
2. ALLOWED_HOSTS = env.list('DJANGO_ALLOWED_HOSTS', default=['*'])
3. STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
4. SECRET_KEY = env.str('SECRET_KEY')
5. DATABASES = {
'default': env.dj_database_url('DATABASE_URL', default='sqlite:///db.sqlite3')
}
6. STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
7. INSTALLED_APPS = [
'whitenoise.runserver_nostatic',
...
]
8. MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
...
]
9. STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
Procfile
faylida web: gunicorn config.wsgi --log-file -
yozib saqlang. config.wsgi
fayl nomi sizning proyekt nomingiz bo'lishi kerak.
.gitignore faylida yaratib unga quyidagi qatorlarni qo'shing:
.env
*.pyc
__pycache__
env
db.sqlite3
- Heroku uchun app ochish
terminalga
heroku create <proyekt_nomi>
ni yozib enter tugmasini bosing.proyekt_nomi
sizning proyekt nomingiz bo'lishi kerak. - Gitni initsializatsiya qilish va commit qilish
terminalga
git init
ni yozib enter tugmasini bosing.git add .
ni yozib enter tugmasini bosing.git commit -m "first commit"
ni yozib enter tugmasini bosing. heroku uchun remote qo'shish uchunheroku git:remote -a <proyekt_nomi>
ni yozib enter tugmasini bosing.proyekt_nomi
sizning proyekt nomingiz bo'lishi kerak. - Proyekt uchun database ochish
terminalga
heroku addons:create heroku-postgresql:hobby-dev
ni yozib enter tugmasini bosing. Bu sizga database urlni beradi. hobby-dev tekin database uchun. - DISABLE_COLLECTSTATIC=1 ni qo'shish
terminalga
heroku config:set DISABLE_COLLECTSTATIC=1
ni yozib enter tugmasini bosing. - Heroku ga deploy qilish
terminalga
git push heroku master
ni yozib enter tugmasini bosing. Ko'p hollarda sizga error chiqadi. Bu errorni to'g'rilash uchun terminalgaheroku logs --tail
ni yozib enter tugmasini bosing. Bu sizga error haqida ma'lumot beradi. - Proyekt muvaffaqiyatli deploy qilingandan keyin dyno o'rnatamiz.
terminalga
heroku ps:scale web=1
ni yozib enter tugmasini bosing. - Migratsiya qilish
terminalga
heroku run python manage.py migrate
ni yozib enter tugmasini bosing. - Superuser yaratish
terminalga
heroku run python manage.py createsuperuser
ni yozib enter tugmasini bosing.username
,email
,password
ni kiriting.
- Heroku uchun static fayllar
terminalga
heroku run python manage.py collectstatic
ni yozib enter tugmasini bosing.