Django loyihani herokuga yuklash bo'yicha qo'llanma
⢠0 views
Django loyihani herokuga yuklash bo'yicha qo'llanma Ushbu maqolada djangoni herokuga terminal orqali yuklash ketma-ket liklarini ko'rib chiqamiz
Muallif: Abdusamad Savollar uchun guruh: Djangouzb Bo'limlar
Django qismi
ā ļø Virtual muhit ichida ekanligizga ishonch hosil qiling
-
Kerakli package larni o'rnatib olamiz
-
pip freeze > requirements.txt-> bu o'rnatilgan dasturlarni herokuga tanitadi va heroku shundagi package larni o'rnatadi -
python3 --version
Chiqqan versiyani runtime.txt fayli ichiga yozamiz yoki quyidagi kommandani teringecho "python-3.10.4" > runtime.txtpython versiyasi o'zniga o'zizni python versiyayizni yozing -
echo "web: gunicorn PROJECT_NOMI.wsgi" > ProcfileBu yerda
PROJECT_NOMIo'rniga wsgi.py fayli turgan papkani yozing. -
INSTALLED_APPS = [ 'whitenoise.runserver_nostatic', # ... ]whitenoise static filelarni saqlashi uchun installed apps ichiga qo'shishimiz kerak
-
ALLOWED_HOSTS = ['127.0.0.1', '.herokuapp.com'] -
DEBUG = False -
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', # whitenoise ni shu yerga qo'shing 'whitenoise.middleware.WhiteNoiseMiddleware', # ... ]Bu yerda sal e'tiborli bo'ling. Ya'ni whitenoise ni Djangoning o'zida mavjud bo'lgan
SecurityMiddlewaretagiga qo'shing -
Bu qismini bajarishdan oldin DATABASE qismini ko'rib chiqing va unda qanday database ochishni o'rganasz
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'DATABASE NOMI', 'USER': 'USER', 'PASSWORD': "PAROL", 'HOST': '127.0.0.1', 'PORT': '5432', } } import dj_database_url db_from_env = dj_database_url.config(conn_max_age=500) DATABASES['default'].update(db_from_env)Shularni
sqLite3database o'rniga qo'shib qo'ying -
STATIC_ROOT = BASE_DIR / 'static' STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'Bu static filelarning ishlashi uchun. Static filelarhaqida batafsil bu yerda o'qishiz mumkin.
Bu django qismining yakuni.
Database qismi
- Agar windows ishlatsangiz PostgreSQL terminaliga kiring. Qanday kirish haqida.
Agar Linux foydalanuvchisi bo'lsangiz
sudo -u postgres psqlbuyrug'ini berish yetarli. - Quyidagi buyruqlarni ketma-ketlikda bajaring.
create database dbnomi;create user dbuser with encrypted password 'parol123';grant all privileges on database dbnomi to dbuser;
GRANTEDdeb tasdiqlaydi - Keyin shu Database nomi useri va parolini django loyihayiz ichidagi DATABASE ichiga kiritasz
Heroku qismi
-
Agar heroku akkauntingiz bo'lmasa ushbu yerdan yangi ochishingiz kerak bo'ladi. Agar bo'lsa shu akkauntingizga brauzer orqali kirib qo'ying
-
Heroku-CLI o'rnatilgan bo'lishi kerak komputeringizda. Agar bo'lmasa pastdagilardan birini bajarib o'rnatib oling.
- Mac uchun:
brew install heroku/brew/heroku - Linux uchun snap orqali:
sudo snap install heroku --classic - Windows uchun: Ushbu sahifa orqali yuklab oling
- Mac uchun:
-
O'rnatib olganizdan so'ng Heroku akkountga uchbu buyruq orqali kiring: Brauzer ochiladi va o'sha orqali kirasz
heroku login -
Herokuda loyihayiz uchun app yaratish
heroku create proyekt_nomi -
Endi django loyihayiz turgan papkada turganiz ga ishonch hosil qiling va ushbu buyruqlar orqali heroku ga yuklaysiz loyihayizni:
git add -A git commit -am "Initial" git push heroku masterMana endi sizning loyihangiz Herokuga yuklandi. Endi navbat keyingi bosqichga ))
-
PostgreSQL ishlashi uchun uni Herokuda aktivlashtirish kerak. Quiyidagi buyruqni tering:
heroku addons:create heroku-postgresql:hobby-dev --app PROYEKT_NOMIBu yerda PROYEKT_NOMI o'rniga boshida heroku uchun yaratgan PROYEKT_NOMI ni yozing
-
Endi navbat django uchun har doim ishlatadigan buyruqlarga. Menimcha hammasini bilasz š:
heroku run python manage.py collectstatic heroku run python manage.py makemigrations heroku run python manage.py migrate heroku run python manage.py createsuperuser heroku open # brauzerni ochadi.
Muammolar
heroku run python manage.py collectstaticqilganda chiqadigan error. Ushbu ketma-ketliklarni bajaring:heroku config:set DISABLE_COLLECTSTATIC=1git push heroku masterheroku run python manage.py collectstatic