Tu primer sitio web en Django

Django Password Generator

Tu primer sitio web en Django

Volver al contenido

Copiar enlace

Entorno virtual

Comando para poder crear un entorno virtual usando conda:

conda create -n django-password-generator python=3

Comando para activar el entorno virtual de conda:

conda activate django-password-generator

instalar Django:

pip install django

si tipeas lo siguiente podras ver los multiples comandos que puedes usar con este paquete:

django-admin

Comando para crear un nuevo proyecto de Django:

django-admin startproject django_password_generator

Comando para ejecutar el servidor de desarrollo:

python manage.py runserver

Una vez el servidor se este ejecutando, podras visitar las siguientes URLs:

Estructura del proyecto

Una breve descripción de la estructura del proyecto

  • manage.py
  • settings.py
    • BASE_DIR, es la ruta de tu proyecto, esta es relativa a donde lo has creado
    • SECRET_KEY, es un string unico para modulos que requieran de un string para mantenerse seguro
    • DEBUG = True, este una variable que nos da mas informacion de los errores. en produccion debe estar en False.
    • ALLOWED_HOST, son las urls que tiene permitidas conectarse a tu aplicacion
    • DATABASES cambia el DEBUG = False, y visita un rl que no existe como: http:/localhost:8000/asdad esta no te mostrara los errores
  • urls.py

tambien necesitas añadir ALLOWED_HOST=['localhost']

Django Apps

Para crear una app en django:

python manage.py startapp generator

luego es necesario agregarlo en Settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'generator'
]

urls

ve /admin

cambialo a otro nombre como /dashboard y ahora tienes que visitar /dashboard para entrar en el login

actualizalo ahora a lo siguiente:

from django.urls import path from generator import views

urlpatterns = [ path('', views.home), path('about', views.about), ]

lueggo en generator/views:

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.


def home(request):
    return HttpResponse('Hello world')

def about(request):
    return HttpResponse('<h1>About</h1>')

Templates

permite leer archivos y ser convertidos en HTML para ser devueltos al cliente

crea en generator/templates/home.html

Home pagge

luego reemplazalo en generator/views.py:

def home(request): return render(request, 'generator/home.html')

pasar datos

tambien puedes pasar informacion:

en generator/views.py

def home(request):
    return render(request, 'generator/home.html', {'name': 'Fazt'})

luego en *generator/templates/home.html*

Hello {{name}}

Password URL

cambiemos home:

<h1>Password Generator</h1>

<form action="generate-password">
  <!-- Password Lenght -->

  <select name="length" id="length">
    <option value="6">6 Characters</option>
    <option value="7">7 Characters</option>
    <option value="8">8 Characters</option>
  </select>

  <button>Generate Password</button>
</form>

luego,

from django.urls import path
from generator import views

urlpatterns = [
    path('', views.home),
    path('generate-password', views.generatedPassword),
]

en generator/templates/password:

y en views:

def generatedPassword(request): return render(request, 'generator/password.html')

ahora en caso en el formulario quieras mantener el mismo nombre de la url, puedes colaor esto:

y luego en urls:

urlpatterns = [ path('', views.home), path('generate-password', views.generatedPassword, name='password'), ]

esto lo que hace es unir la vista y la url pasandole el nombre, name no tiene que ser distinto, puede ser el mismo que el nombre del path, solo lo he colocado asi para notarlo.

Más Recursos

Actualizado por ultima vez el

Aprende a crear una aplicación web que genera contraseñas usando el Framework de Python Django, un entorno virtual y el framework Boostrap 5

¿Quieres Compatir mi Contenido?

Publicado:hace 3 años

Actualizado:hace 2 años

;