01
parent
6049662435
commit
6be4da9f2d
@ -5,22 +5,22 @@
|
|||||||
-------
|
-------
|
||||||
|
|
||||||
### Creacion Entorno Virtual
|
### Creacion Entorno Virtual
|
||||||
```
|
```sh
|
||||||
python3 -m venv .django-env
|
python3 -m venv .django-env
|
||||||
```
|
```
|
||||||
|
|
||||||
### Usar virt-env
|
### Usar virt-env
|
||||||
```
|
```sh
|
||||||
source .django-evn/bin/activate
|
source .django-evn/bin/activate
|
||||||
```
|
```
|
||||||
|
|
||||||
### Installar Django
|
### Installar Django
|
||||||
```
|
```sh
|
||||||
pip3 install Django
|
pip3 install Django
|
||||||
```
|
```
|
||||||
|
|
||||||
### Crear Proyecto
|
### Crear Proyecto
|
||||||
```
|
```sh
|
||||||
django-admin startproject NombreProyecto
|
django-admin startproject NombreProyecto
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -33,12 +33,12 @@ django-admin startproject NombreProyecto
|
|||||||
|
|
||||||
|
|
||||||
### Creación de base de datos
|
### Creación de base de datos
|
||||||
```
|
```sh
|
||||||
python3 manage.py migrate
|
python3 manage.py migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
### Correr servidor de pruebas
|
### Correr servidor de pruebas
|
||||||
```
|
```sh
|
||||||
python3 manage.py runserver <ip:puerto>
|
python3 manage.py runserver <ip:puerto>
|
||||||
```
|
```
|
||||||
--------
|
--------
|
||||||
@ -57,7 +57,7 @@ python3 manage.py runserver <ip:puerto>
|
|||||||
## Primera Vista
|
## Primera Vista
|
||||||
|
|
||||||
crear Proyecto1/views.py
|
crear Proyecto1/views.py
|
||||||
```
|
```py
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
|
||||||
def primeravista(request):
|
def primeravista(request):
|
||||||
@ -69,7 +69,7 @@ def otra(request);
|
|||||||
|
|
||||||
### 'Enlazar' vista con una URL
|
### 'Enlazar' vista con una URL
|
||||||
***urls.py***
|
***urls.py***
|
||||||
```
|
```py
|
||||||
from Proyecto1.views import primeravista, otra
|
from Proyecto1.views import primeravista, otra
|
||||||
|
|
||||||
url_patterns = [
|
url_patterns = [
|
||||||
@ -83,7 +83,7 @@ url_patterns = [
|
|||||||
## Paso de parametros en URL
|
## Paso de parametros en URL
|
||||||
|
|
||||||
*views.py*
|
*views.py*
|
||||||
```
|
```py
|
||||||
def calcEdad(request, edad, ano):
|
def calcEdad(request, edad, ano):
|
||||||
periodo = ano - 2020
|
periodo = ano - 2020
|
||||||
edadfutura = edad + periodo
|
edadfutura = edad + periodo
|
||||||
@ -93,7 +93,7 @@ def calcEdad(request, edad, ano):
|
|||||||
```
|
```
|
||||||
|
|
||||||
*urls.py*
|
*urls.py*
|
||||||
```
|
```py
|
||||||
from Proyecto1.views import primeravista, otra, verFecha, calcEdad
|
from Proyecto1.views import primeravista, otra, verFecha, calcEdad
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
@ -104,7 +104,7 @@ urlpatterns = [
|
|||||||
|
|
||||||
### Contenido Dinámico
|
### Contenido Dinámico
|
||||||
*views.py*
|
*views.py*
|
||||||
```
|
```py
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
def verFecha(request):
|
def verFecha(request):
|
||||||
@ -114,7 +114,7 @@ def verFecha(request):
|
|||||||
```
|
```
|
||||||
|
|
||||||
*urls.py*
|
*urls.py*
|
||||||
```
|
```py
|
||||||
from Proyecto1.views import primeravista, otra, verFecha
|
from Proyecto1.views import primeravista, otra, verFecha
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
@ -134,12 +134,12 @@ urlpatterns = [
|
|||||||
- Renderizado del objeto Template `documento = plant.render(ctx)`
|
- Renderizado del objeto Template `documento = plant.render(ctx)`
|
||||||
|
|
||||||
*Proyecto1/plantillas/miplantilla.html*
|
*Proyecto1/plantillas/miplantilla.html*
|
||||||
```
|
```html
|
||||||
<html><body><h3>Primera plantilla en Django ╮(︶▽︶)╭</h3></body></html>
|
<html><body><h3>Primera plantilla en Django ╮(︶▽︶)╭</h3></body></html>
|
||||||
```
|
```
|
||||||
|
|
||||||
*views.py*
|
*views.py*
|
||||||
```
|
```py
|
||||||
from django.template import Template, Context
|
from django.template import Template, Context
|
||||||
|
|
||||||
def primeravista(request):
|
def primeravista(request):
|
||||||
@ -155,7 +155,7 @@ def primeravista(request):
|
|||||||
### Uso de variables en plantillas
|
### Uso de variables en plantillas
|
||||||
|
|
||||||
*views.py*
|
*views.py*
|
||||||
```
|
```py
|
||||||
from django.template import Template, Context
|
from django.template import Template, Context
|
||||||
|
|
||||||
def primeravista(request):
|
def primeravista(request):
|
||||||
@ -172,7 +172,7 @@ def primeravista(request):
|
|||||||
```
|
```
|
||||||
|
|
||||||
*miplantilla.html*
|
*miplantilla.html*
|
||||||
```
|
```html
|
||||||
<html>
|
<html>
|
||||||
<body>
|
<body>
|
||||||
<h2 style="color: magenta">
|
<h2 style="color: magenta">
|
||||||
@ -188,7 +188,7 @@ def primeravista(request):
|
|||||||
### Acceso a objetos y propiedades desde plantillas (uso de dicc. en contexto)
|
### Acceso a objetos y propiedades desde plantillas (uso de dicc. en contexto)
|
||||||
|
|
||||||
*views.py*
|
*views.py*
|
||||||
```
|
```py
|
||||||
class Persona(object):
|
class Persona(object):
|
||||||
def __init__(self, nombre, apellido):
|
def __init__(self, nombre, apellido):
|
||||||
self.nombre = nombre
|
self.nombre = nombre
|
||||||
@ -209,7 +209,7 @@ def primeravista(request):
|
|||||||
### Uso de listas en contexto y plantillas
|
### Uso de listas en contexto y plantillas
|
||||||
|
|
||||||
*views.py*
|
*views.py*
|
||||||
```
|
```py
|
||||||
temas_curso = ["Vistas", "Modelos", "Plantillas", "Formularios", "Despliege"]
|
temas_curso = ["Vistas", "Modelos", "Plantillas", "Formularios", "Despliege"]
|
||||||
|
|
||||||
ctx = Context({"nombre_persona":p1.nombre, "apell_persona":p1.apellido, "fecha":fecha, "temas":temas_curso})
|
ctx = Context({"nombre_persona":p1.nombre, "apell_persona":p1.apellido, "fecha":fecha, "temas":temas_curso})
|
||||||
@ -218,7 +218,7 @@ ctx = Context({"nombre_persona":p1.nombre, "apell_persona":p1.apellido, "fecha":
|
|||||||
### Estructuras de control de flujo en plantillas
|
### Estructuras de control de flujo en plantillas
|
||||||
|
|
||||||
*miplantilla.html*
|
*miplantilla.html*
|
||||||
```
|
```html
|
||||||
<p><strong>Temas de estudio</strong></p>
|
<p><strong>Temas de estudio</strong></p>
|
||||||
<p>
|
<p>
|
||||||
<ul>
|
<ul>
|
||||||
@ -245,14 +245,14 @@ ctx = Context({"nombre_persona":p1.nombre, "apell_persona":p1.apellido, "fecha":
|
|||||||
#### Métodos en plantillas
|
#### Métodos en plantillas
|
||||||
|
|
||||||
*miplantilla.html*
|
*miplantilla.html*
|
||||||
```
|
```html
|
||||||
<p>El Nombre de prueba es: <strong>{{nombre_persona.upper}}</strong></p>
|
<p>El Nombre de prueba es: <strong>{{nombre_persona.upper}}</strong></p>
|
||||||
<p>El Apellido de prueba es: <strong>{{apell_persona.upper}}</strong></p>
|
<p>El Apellido de prueba es: <strong>{{apell_persona.upper}}</strong></p>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Tags
|
### Tags
|
||||||
|
|
||||||
```
|
```html
|
||||||
# autoescape on por defecto
|
# autoescape on por defecto
|
||||||
{% autoescape on %}
|
{% autoescape on %}
|
||||||
{{ body }}
|
{{ body }}
|
||||||
@ -279,7 +279,7 @@ ctx = Context({"nombre_persona":p1.nombre, "apell_persona":p1.apellido, "fecha":
|
|||||||
|
|
||||||
# Cross Site Request Forgery
|
# Cross Site Request Forgery
|
||||||
```
|
```
|
||||||
```
|
```html
|
||||||
# for
|
# for
|
||||||
{% for x, y in points %}
|
{% for x, y in points %}
|
||||||
There is a point at {{ x }},{{ y }}
|
There is a point at {{ x }},{{ y }}
|
||||||
@ -300,7 +300,7 @@ ctx = Context({"nombre_persona":p1.nombre, "apell_persona":p1.apellido, "fecha":
|
|||||||
### Fitros
|
### Fitros
|
||||||
|
|
||||||
*miplantilla.html*
|
*miplantilla.html*
|
||||||
```
|
```html
|
||||||
# filtro upper
|
# filtro upper
|
||||||
<p>El Apellido de prueba es: <strong>{{apell_persona|upper}}</strong></p>
|
<p>El Apellido de prueba es: <strong>{{apell_persona|upper}}</strong></p>
|
||||||
|
|
||||||
@ -324,7 +324,7 @@ ctx = Context({"nombre_persona":p1.nombre, "apell_persona":p1.apellido, "fecha":
|
|||||||
De esta forma, el objeto *render* no adminte un contexto como parametro.
|
De esta forma, el objeto *render* no adminte un contexto como parametro.
|
||||||
Debe recibir un *diccionario*
|
Debe recibir un *diccionario*
|
||||||
*views.py*
|
*views.py*
|
||||||
```
|
```py
|
||||||
....
|
....
|
||||||
from django.template.loader import get_template
|
from django.template.loader import get_template
|
||||||
|
|
||||||
@ -336,7 +336,7 @@ return HttpResponse(documento)
|
|||||||
|
|
||||||
Especificar ruta a plantillas
|
Especificar ruta a plantillas
|
||||||
*settings.py*
|
*settings.py*
|
||||||
```
|
```py
|
||||||
TEMLPATES = [
|
TEMLPATES = [
|
||||||
...
|
...
|
||||||
'DIRS': ['/home/sat/weblocal/PildorasInf/Proyecto1/Proyecto1/plantillas'],
|
'DIRS': ['/home/sat/weblocal/PildorasInf/Proyecto1/Proyecto1/plantillas'],
|
||||||
@ -347,7 +347,7 @@ TEMLPATES = [
|
|||||||
### Simplificación de código con paquete shortcuts
|
### Simplificación de código con paquete shortcuts
|
||||||
[Django-doc](https://docs.djangoproject.com/en/3.0/topics/http/shortcuts/)
|
[Django-doc](https://docs.djangoproject.com/en/3.0/topics/http/shortcuts/)
|
||||||
*views.py*
|
*views.py*
|
||||||
```
|
```py
|
||||||
...
|
...
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
|
||||||
@ -361,7 +361,7 @@ from django.shortcuts import render
|
|||||||
### Pantillas dentro de plantillas ( incrustadas )
|
### Pantillas dentro de plantillas ( incrustadas )
|
||||||
|
|
||||||
ej. barra navegacion simple */plantillas/superior/barra.html*
|
ej. barra navegacion simple */plantillas/superior/barra.html*
|
||||||
```
|
```html
|
||||||
<html>
|
<html>
|
||||||
<style>
|
<style>
|
||||||
#barra{
|
#barra{
|
||||||
@ -388,7 +388,7 @@ ej. barra navegacion simple */plantillas/superior/barra.html*
|
|||||||
</html>
|
</html>
|
||||||
```
|
```
|
||||||
Incrustar en *miplantilla.html*
|
Incrustar en *miplantilla.html*
|
||||||
```
|
```html
|
||||||
<html>
|
<html>
|
||||||
<body>
|
<body>
|
||||||
{% include "superior/barra.html" %}
|
{% include "superior/barra.html" %}
|
||||||
@ -409,7 +409,7 @@ Parent.html
|
|||||||
|
|
||||||
ej. Parent
|
ej. Parent
|
||||||
*plantillas/base.html*
|
*plantillas/base.html*
|
||||||
```
|
```html
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
@ -437,7 +437,7 @@ ej. Parent
|
|||||||
|
|
||||||
ej. child
|
ej. child
|
||||||
*childpage1.html*
|
*childpage1.html*
|
||||||
```
|
```html
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
|
||||||
{% block title %} Pagina hija {% endblock %}
|
{% block title %} Pagina hija {% endblock %}
|
||||||
@ -452,14 +452,14 @@ ej. child
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
```
|
```
|
||||||
Registrar vista *views.py* y url en *urls.py*
|
Registrar vista *views.py* y url en *urls.py*
|
||||||
```
|
```py
|
||||||
def herencia1(request):
|
def herencia1(request):
|
||||||
fecha_ahora = datetime.datetime.now()
|
fecha_ahora = datetime.datetime.now()
|
||||||
return render(request, "childpage1.html", {"verFecha":fecha_ahora})
|
return render(request, "childpage1.html", {"verFecha":fecha_ahora})
|
||||||
|
|
||||||
# lo mismo para childpage2.html
|
# lo mismo para childpage2.html
|
||||||
```
|
```
|
||||||
```
|
```py
|
||||||
from Proyecto1.views import primeravista, otra, verFecha, calcEdad, herencia1, herencia2
|
from Proyecto1.views import primeravista, otra, verFecha, calcEdad, herencia1, herencia2
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
@ -473,4 +473,4 @@ urlpatterns = [
|
|||||||
|
|
||||||
**Ir a:**
|
**Ir a:**
|
||||||
*[Repositorio](https://gitea.kickto.net/jp.av.dev/intro_Django#user-content-django-wiki)*,
|
*[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)*
|
*[Proyecto y apps (bd)](https://gitea.kickto.net/jp.av.dev/intro_Django/wiki/2_Apps%26BD#user-content-proyecto-y-aplicacion-es)*
|
||||||
|
Loading…
Reference in New Issue
Block a user