**Ir a:**
*[Repositorio](https://gitea.kickto.net/jp.av.dev/intro_Django#user-content-django-wiki)*,
*[Proyecto y apps (bd)](https://gitea.kickto.net/jp.av.dev/intro_Django/wiki/2_Apps%26BD#user-content-proyecto-y-aplicacion-es)*
-------
### Creacion Entorno Virtual
```
python3 -m venv .django-env
```
### Usar virt-env
```
source .django-evn/bin/activate
```
### Installar Django
```
pip3 install Django
```
### Crear Proyecto
```
django-admin startproject NombreProyecto
```
### Detalle del proyecto:
- **init.py :** Tratar directorio como paquete de Python
- **settings.py :** Configuracion del Proyecto (*ej.TIMEZONE*)
- **urls.py :** "Indice" de urls del sitio
- **wsgi.py :** Interfaz entre apps del servidor y Django y/o Python frameworks
### Creación de base de datos
```
python3 manage.py migrate
```
### Correr servidor de pruebas
```
python3 manage.py runserver El Nombre de prueba es: {{nombre_persona}} El Apellido de prueba es: {{apell_persona}} Día : {{fecha.day}}/{{fecha.month}}/{{fecha.year}}/ Temas de estudio
Nada que mostrarEn el %s tendras %s años
" %(ano, edadfutura)
return HttpResponse(doc)
```
*urls.py*
```
from Proyecto1.views import primeravista, otra, verFecha, calcEdad
urlpatterns = [
...
path('edades/ Hora y Fecha actual: %s
" % fecha_ahora
return HttpResponse(documento)
```
*urls.py*
```
from Proyecto1.views import primeravista, otra, verFecha
urlpatterns = [
...
path('fecha/', verFecha),
...
```
--------
## Templates o Plantillas
*en su mayoria HTML*, se usan para separar la lógica de lo visual de un documento web.
"temas":["Vistas", "Modelos", "Plantillas", "Formularios", "Despliege"]
#Uso:
- Creación de objeto Template `plant = Template(doc_externo.read())`
- Creacion de contexto (**datos adicionales ej, vars, func., etc**) `ctx = Context()`
- Renderizado del objeto Template `documento = plant.render(ctx)`
*Proyecto1/plantillas/miplantilla.html*
```
Primera plantilla en Django ╮(︶▽︶)╭
```
*views.py*
```
from django.template import Template, Context
def primeravista(request):
doc_externo = open("/home/sat/weblocal/PildorasInf/Proyecto1/Proyecto1/plantillas/miplantilla.html", 'r')
plantilla = Template(doc_externo.read())
doc_externo.close()
ctx = Context()
documento = plantilla.render(ctx)
return HttpResponse(documento)
```
### Uso de variables en plantillas
*views.py*
```
from django.template import Template, Context
def primeravista(request):
nombre = "Zerafín"
apellido = "Menendes"
fecha = datetime.datetime.now()
doc_externo = open("/home/sat/weblocal/PildorasInf/Proyecto1/Proyecto1/plantillas/miplantilla.html", 'r')
plantilla = Template(doc_externo.read())
doc_externo.close()
ctx = Context({"nombre_persona":nombre, "apell_persona":apellido, "fecha":fecha})
documento = plantilla.render(ctx)
return HttpResponse(documento)
```
*miplantilla.html*
```
Primera plantilla en Django ╮(︶▽︶)╭
{% if temas %}
{% for tema in temas %}
El Nombre de prueba es: {{nombre_persona.upper}}
El Apellido de prueba es: {{apell_persona.upper}}
``` ### Tags ``` # autoescape on por defecto {% autoescape on %} {{ body }} {% endautoescape %} # Comentarios {# COMENTARIO DE UNA LINEA #} {% comment "nota opcional" %} Comentario con nota, multilinea, no visible para web inspector de navegador* {% endcomment %} # Herencia, para 'esqueletos' de plantillas (elementos comunes del sitio {% block barra_lateral %} {% endblock %} # Proteccion contra CSRF* (on por defecto)