36
loading...
This website collects cookies to deliver better user experience
Nota: Estoy usando una terminal de Ubuntu con WSL.
sudo apt-get install python3 python3-pip
curl https://cli-assets.heroku.com/install.sh | sh
python3 pip3 install django-admin
Si en la instalación de este último, no se encuentra el comando django-admin, se es necesario agregar la ruta del script al $PATH de la terminal.
export PATH="/home/[user]/.local/bin:$PATH"
# Cambiar la variable '[user]' por el nombre correspondiente de su nombre de usuario de la pc.
sudo apt-get install postgresql python-dev libpq-dev
passwd postgres
# Ingresa la contraseña cuando te lo pida.
su postgres
createdb [django]
createuser [django]
psql
ALTER USER [django] WITH PASSWORD '[anytoken]';
# Cambiar las variable '[django]' y '[anytoken]' por cualquier valor correspondiente.
django-admin startproject [django_postgres]
cd [django_postgres]
# Cambiar la variable '[django_postgres]' por el nombre real de tu proyecto.
django_postgres
|-- django_postgres
| |-- __init__.py
| |-- asgi.py
| |-- settings.py
| |-- urls.py
| |-- wsgi.py
|-- manage.py
python3 -m venv venv
source venv/bin/activate# En caso de querer desactivar el entorno virtual, se es necesario usar el siguiente comando.
(venv) deactivate
(venv) pip3 install Django
(venv) pip3 install psycopg2
(venv) pip3 install gunicorn
(venv) pip3 install django-heroku
django_postgres/settings.py
# django_postgress/settings.py
...
# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '[django]',
'USER': '[django]',
'PASSWORD': '[anytoken]',
'HOST': 'localhost',
'PORT': '5432'
}
}
...
# Cambiar las variable '[django]' y '[anytoken]' por cualquier valor correspondiente.
(venv) python3 manage.py runserver
(venv) python3 manage.py createsuperuser
# Ingrese los datos que le pida el programa.
(venv) pip3 freeze > requirements.txt
Nota: En algunas ocasiones, se puede presentar un error con la librería pkg-resource, por lo que en tal caso se debe eliminar del requirements.txt
# requirements.txt
...
dj-database-url==0.5.0
Django==3.0.4
django-heroku==0.3.1
gunicorn==20.0.4
--pkg-resources==0.0.0
psycopg2==2.8.4
pytz==2019.3
sqlparse==0.3.1
...
# django_postgress/settings.py
...
import os
+++ import django_heroku
...# Al final del archivo.
...STATIC_URL = '/static/'+++ django_heroku.settings(locals())
...
# django_postgress/settings.py
...
# SECURITY WARNING: don't run with debug turned on in production!
+++ DEBUG = False
...
django_postgres/urls.py
, al cual por conceptos de no extender tanto esta guía, vamos a usar como pages de inicio o index la misma que trae por defecto django en desarrollo. Ya que django en producción oculta dicha vista.# django_postgress/urls.py
...from django.contrib import admin
from django.urls import path
+++ from django.views import debug
urlpatterns = [
path('admin/', admin.site.urls),
+++ path('', debug.default_urlconf)
]
...
# Procfile
...web: gunicorn django_postgres.wsgi --log-file -
release: python3 manage.py migrate...
# runtime.txt
...python-3.6.9
...
(venv) heroku login
(venv) heroku create --app [django_postgres]
# Cambiar las variable '[django_postgres] por el nombre de tu proyecto.
(venv) git init
(venv) echo 'venv/\n.py[cod]\n' > .gitignore
(venv) git add .
(venv) git commit -m 'Primer commit'
(venv) heroku git:remote --app [django_postgres]
# Cambiar las variable '[django_postgres] por el nombre de tu proyecto.
(venv) git push heroku master
(venv) heroku open