Django 3 - Webinar
Django 3 - Webinar
Editor de Texto [Opcional]
https://download.sublimetext.com/Sublime%20Text%20Build%203211%20x64%20Setup.exe
1. Instalar python
Python 3.7.1
64 bits .exe
https://www.python.org/ftp/python/3.6.5/python-3.6.5-amd64.exe
Otras distribuciones
https://www.python.org/downloads/release/python-365/
2. Configurar Variables de Entorno
3. Instalar generador de entornos Virtuales
pip install virtualenvwrapper-win
4. Crear Entorno virtual
mkvirtualenv prueba
5. Instalar Django
pip install django
django-admin startproject proyecto
6. Crear aplicación en django
python manage.py startapp nombreapp
Llave Foránea
nombre_campo
=
models
.
ForeignKey
(
Clase_que_voy_a_relacionar
,
on_delete
=
models
.
CASCADE
)
ejemplo:
from django.db import models
from django.db.models import CharField, FloatField
# Create your models here.
class TipoVehiculo(models.Model):
"""Aquí se crean las clases"""
tipo_vehiculo = CharField(max_length=10, unique=True)
peso_maximo = FloatField()
peso_minimo = FloatField()
peso = FloatField()
Cada vez que existan cambios
python manage.py makemigrations
python manage.py migrate
9. Django Admin Generator
Super Usuario
python manage.py createsuperuser
Instalar
pip install django-admin-generator
Generar
python manage.py admin_generator nombreapp > admin1.py
10.Instalar Postgres
POSTGRESQL 10.11
https://www.enterprisedb.com/thank-you-downloading-postgresql?anid=1257100
PGADMIN 4 EXE
https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.16/windows/pgadmin4-4.16-x86.exe
INSTALAR POSTGRES EN DJANGO
pip install psycopg2
11. Crear Crud en Django
1. Conexión a la base de datos
2. Con Postgresql
DATABASES= {
"
default"
: {
"ENGINE"
: "
django.db.backends.postgresql"
,
"NAME"
:
'nombre_base_de_datos'
,
"USER"
:
'usuario'
,
"PASSWORD"
:
'contraseña'
,
"HOST"
:
'localhost'
,
"PORT"
:
'5432'
,
}
}
3. STATIC FILES
STATIC_URL=
'/static/'
STATICFILES_DIRS= (
os
.
path
.
join
(
BASE_DIR
,
"static"
),)
STATIC_ROOT= o
s
.
path
.
join
(
BASE_DIR
,
"staticfiles"
)
MEDIA_URL=
"/media/"
MEDIA_ROOT=
os
.
path
.
join
(
BASE_DIR
,
"media"
)
FILE_UPLOAD_MAX_MEMORY_SIZE= 1
00242880
# 95,59MB
4. CRUD
Views
class TipoVehiculoList(ListView):
model = TipoVehiculo
URL’s
urlpatterns = [
url(r'^$', TipoVehiculo.as_view(),
name='list'),
url(r'^(?P<pk>\d+)$', TipoVehiculo.as_view(),
name='detail'),
url(r'^nuevo$', TipoVehiculo.as_view(),
name='new'),
url(r'^editar/(?P<pk>\d+)$',
TipoVehiculo.as_view(), name='edit'),
url(r'^borrar/(?P<pk>\d+)$',
TipoVehiculo.as_view(), name='delete'),
]
TEMPLATE
<h1>Vehículos</h1>
<p>
<a href="{% url "vehiculo:new" %}">Agregar
curso</a>
</p>
<ul>
{% for course in object_list %}
<li>
<p>{{ course.name }}</p>
<p>
<a href="{% url "courses:detail"
course.id %}">Ver</a> |
<a href="{% url "courses:edit"
course.id %}">Editar</a> |
<a href="{% url "courses:delete"
course.id %}">Borrar</a>
</p>
</li>
{% endfor %}
</ul>
12. Requirements.txt
Exportar Requirements
pip freeze > requirements.txt
Importar Requirements
pip install -r requirements.txt
def cuenta_usuario(request):
ctx = {}
return render(request, plantilla.html', ctx)