Loading repository data…
Loading repository data…
jfrugone1970 / repository
Mi repositorio presenta un proyecto de desarrollo de una pagina WEB en Django para quienes están aprendiendo por primera vez Django
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Vamos a definir lo que es Django primeramente:
Django es un framework de desarrollo web de codigo abierto, escrito en Python que respeta el patron de diseno conocido como "MVC (Modelo Vista Controlador) fue desarrollado en su origen para gestionar varias paginas orientadas a noticias de la World Company de Lawrences de Kansas, fue liberada al pablico bajo una licencia BSD en julio 2005.
https://es.wikipedia.org/wiki/Django_(framework)
Modelo Vista Controlador (MVC)
Modelo-vista-controlador es un patron de arquitectura de software que separa los datos y principalmente lo que es la logica de los negocios de una aplicacion de su representacion y el modulo encargado de gestionar los eventos y las comunicaciones.
https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador
Instalacion de Django
Para la instalacion de Django lo que tienes que hacer primeramente desde la ventana de comandos verificar si esta instalado Python en la computadora para ello desde la ventana de comandos digitas python --version y das enter te da la version del python que tienes instalada, para instalar django deber digitar pip install Django==3.1.3 y dar enter esperar de que se realice la instalacion de Django
https://www.djangoproject.com/download/
Crear nuestro proyecto de Django.-
Para crear nuestro proyecto de Django desde la ventana de comando del sistema operativo de Windows en mi caso ponemos cd wamp64/www/Curso_Udemy_Master_Python/22-django para crear el proyecto lo creamos de la siguiente manera django-admin startproject AprendiendoDjango, para este caso nuestro proyecto se llama "AprendiendoDjango"
https://docs.djangoproject.com/en/3.1/intro/tutorial01/
Una vez creada el proyecto de Django en la computadora hay que crear la base de datos que por defecto crea una base de datos de sqllite3, poniendo python manage.py migrate
Crear una app de Django
Una app es una aplicacion que se va a ejecutar dentro la aplicacion de Python, que tiene que estar especificado dentro del archivo de configuracion settings.py de Python en la parte que dice installeds_apps, para crear la aplicacion se digita python manage.py startapp miapp, y crear la aplicacion
https://docs.djangoproject.com/en/3.1/intro/tutorial01/
Routing y vistas en Django Crear vistas y rutas.-
Para crear las rutas y vistas en el archivo views.py de la aplicacion en este caso mi apps se crear las diferentes vistas, para ello podermos hacer uso del paquete HttpResponse, o render de Django para llamar luego a los diferentes template., el siguiente codigo:
from django.shortcuts import render, HttpResponse, redirect from miapp.models import Article, Category, SubCategory
layout = """
<h1>Sitio web con Django | Lcdo Jose Fernando Frugone</h1>
<hr/>
<ul>
<li>
<a href="/inicio">Inicio</a>
</li>
<li>
<a href="/hola-mundo">Hola-mundo</a>
</li>
<li>
<a href="/paginas-pruebas">Paginas</a>
</li>
<li>
<a href="/contacto/Lcdo./Jose Fernando/Frugone Jaramillo">Contacto</a>
</li>
<li>
<a href="/estudiante/Luis Andres/Garcia Moran">Estudiante</a>
</li>
</ul>
<hr/>
"""
def index(request, nombre=""):
year = 1970
bisiesto = []
while year <= 2020:
if year % 4 == 0:
bisiesto.append(f"{str(year)}")
year += 1
dato1 = 1950
periodo = range(dato1, 2021)
nombre = "Lcdo. Jose Fernando Frugone Jaramillo"
return render(request, 'index.html', {
'titulo':'Inicio',
'nombre':nombre,
'bisiesto':bisiesto,
'periodo':periodo
})
def hola_mundo(request):
return render(request, 'hola_mundo.html')
def pagina(request, redirigir = 0):
if redirigir == 1:
return redirect('/index')
elif redirigir == 2:
return redirect('/hola-mundo')
elif redirigir == 3:
return redirect('contacto',profesion="Lcdo",nombre="Jose Fernando",apellido="Frugone Jaramillo")
elif redirect == 4:
return redirect('estudiante',nombre="Juan Pablo",apellido="Castro Gonzalez")
return render(request, 'pagina.html')
def contacto(request, profesion="", nombre="", apellido=""):
return render(request, 'contacto.html', {
'titulo':'Pagina de contacto',
'profesion':profesion,
'nombre':nombre,
'apellido':apellido
})
def estudiante(request, nombre="", apellido=""):
lista = [{
'nombre':'Antonio',
'apellido':'Garcia'
},
{
'nombre':'Pablo',
'apellido':'Rosales'
},
{
'nombre':'Alejandro',
'apellido':'Andrade'
},
{
'nombre':'Luis',
'apellido':'Castro'
},
{
'nombre':'Eduardo',
'apellido':'Medina'
},
{
'nombre':'Carlos',
'apellido':'Gonzalez'
}
]
return render(request, 'estudiante.html', {
'titulo':'Pagina de estudiante',
'lista':lista
})
def crear_articulo(request):
articulo = Article(
title = 'Primer Articulo',
content = 'Contenido del articulo',
public = True,
)
articulo.save()
return HttpResponse("Usuario creado :")
las rutas se especifican dentro del proyecto de Django en el archivo de configuracion de las rutas urls.py, asi de esta manera:
"""AprendiendoDjango URL Configuration
The urlpatterns list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from miapp import views
urlpatterns = [ path('admin/', admin.site.urls), path('', views.index, name="index"), path('inicio/', views.index, name="inicio"), path('inicio/str:nombre',views.index, name="inicio"), path('hola-mundo/', views.hola_mundo, name="hola_mundo"), path('paginas-pruebas/', views.pagina, name="pagina"), path('paginas-pruebas/int:redirigir', views.pagina, name="pagina"), path('contacto/', views.contacto, name="contacto"), path('contacto/str:profesion/str:nombre', views.contacto, name="contacto"), path('contacto/str:profesion/str:nombre/str:apellido', views.contacto, name="contacto"), path('estudiante/', views.estudiante, name="estudiante"), path('estudiante/str:nombre', views.estudiante, name="estudiante"), path('estudiante/str:nombre/str:apellido/', views.estudiante, name="estudiante"), path('crear-articulo/str:title/str:content/str:public/', views.crear_articulo, name="crea_articulo"), path('editar-articulo/int:id/str:name/str:description/', views.editar_articulo, name="editar_articulo"), path('crear-categori/str:name/str:description/', views.crear_category, name="crea_categoria"), path('editar-categori/int:id/str:name/str:description/', views.editar_categori, name="editar_categori"), path('categoria-lista/str:name/str:description/', views.lista_categori, name="lista_categori"), path('crear-subcategori/str:name/str:description/', views.crear_sub_category, name="crea_subcategori"), path('editar-subcategori/int:id/str:name//', views.editar_subcategoria, name="editar_subcategori"), path('subcategori-lista///', views.lista_subcategory, name="lista_subcategori"), path('mostrar-articulo///', views.articulo, name="mostrar"), path('crea-persona//////////',views.persona, name="persona"), path('editar-persona///////////', views.editar_persona, name="editar_persona"), path('lista/////', views.lista_persona, name="mostrar_p")
]
https://docs.djangoproject.com/en/3.1/intro/tutorial01/
Plantillas y Templates de Django
Templates separadas.- Una vista es un tipo de pagina WEB que el servidor generalmente especifica funciones y tiene un template especifico los template se especifica dentro de la carpeta templates de la aplicacion de Django, para este caso vamos a crear varios templates para mi proyecto "index.html", "layout.html", "pagina.html", "contacto.html", que son fragmentos de codigo HTML para ser usado en Python
https://docs.djangoproject.com/en/3.1/intro/tutorial03/
Layout, bloques y herencias.- Dentro de los templates vamos hacer un template pricipal que los demas template van a heredad su estructura de su pagina WEB definimos el template "layout.html", de la siguiente manera:
{% load static %}
</title>
<link rel="stylesheet" type="text/css" href="{% static 'css/styles.css' %}" />
<!-- Cabecera de la pagina-->
<header>
<div id="logotipo">
<!-- Logo Django-->
<img src="{% static 'images/logo.png'%}" />
<h1>Sitio Web con Django!!!</h1>
</div>
</header>
<nav>
<ul>
<li>
<a href="{% url 'inicio' nombre='Lcdo. Jose Fernando Frugone Jaramillo' %}">Inicio</a>
</li>
<li>
<a href="{% url 'hola_mundo' %}">Hola-mundo</a>
</li>
<li>
<a href="{% url 'pagina' %}">Paginas</a>
</li>
<li>
<a href="{% url 'contacto' profesion='Lcdo.' nombre='Jose Fernando' apellido='Frugone Jaramillo' %}">Contacto</a>
</li>
<li>
<a href="{% url 'estudiante' nombre='Luis Adrian' apellido='Garcia Morales' %}">Estudiante</a>
</li>
</ul>
</nav>
<div class="barra">
<span class="esquina-izquierda"></span>
<span class="relleno-barra"></span>
<span class="esquina-derecha"></span>
</div>
<div class="contador-visitas">
<aside>
<h2 class="title">Visitas de pagina</h2>
<a href="https://www.contadorvisitasgratis.com" title="contador de visitas"><img
src="https://counter3.stat.ovh/private/contadorvisitasgratis.php?c=uaa1seee4dfrfe6n1kmllx6dggjh116s"
border="0" title="contador de visitas" alt="contador de visitas" target="_blank"></a>
</aside>
</div>
<div