Django es un marco web Python de alto nivel que fomenta un desarrollo rápido y un diseño limpio y pragmático. Creado por desarrolladores experimentados, se encarga de gran parte de las molestias del desarrollo web, por lo que puede concentrarse en escribir su aplicación sin necesidad de reinventar la rueda. Es gratis y de código abierto.
En este artículo veremos el envío de formularios en django sin recargar la página usando Jquery y Ajax
Para instalar django, abra cmd o terminal y escriba el siguiente comando
pip3 install django
Luego crea un nuevo proyecto
django-admin startproject newproj
cd newproj
Luego, para crear una nueva aplicación.
ventanas
python manage.py startapp main
ubuntu
python3 manage.py startapp main
Agrega el nombre de tu aplicación en settings.py
Cree un nuevo directorio dentro de la aplicación y nómbrelo como plantillas dentro que crean otro directorio y nómbrelo como principal (el nombre de su aplicación)
Ejecute este comando para migrar
python manage.py migrate
Crear nuevo modelo dentro de models.py
modelos.py
Python3
from django.db import models # Create your models here. class Todo(models.Model): task = models.CharField(max_length=200) def __str__(self): return f"{self.task}"
python manage.py makemigrations
python manage.py migrate
administrador.py
Python3
from django.contrib import admin from .models import * # Register your models here. admin.site.register(Todo)
Cree un nuevo archivo dentro del directorio de plantillas y asígnele el nombre form.html
HTML
<!DOCTYPE html> <html> <head> <title>Todo List</title> </head> <body> <form method="post" id="task-form"> {% csrf_token %} <input type="text" placeholder="Enter Task" name="task" id="task" required> <button type="submit">Save</button> </form> <script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script> <script type="text/javascript"> $(document).on('submit','#task-form',function(e){ e.preventDefault(); $.ajax({ type:'POST', url:'{% url "home" %}', data: { task:$("#task").val(), csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val() }, success:function(){ alert('Saved'); } }) }); </script> </body> </html>
Cree una nueva vista dentro de views.py para manejar la solicitud de obtención y publicación.
Python3
from django.shortcuts import render from .models import Todo # Create your views here. def home(request): if request.method == 'POST': task=request.POST.get('task') print(task) new = Todo(task=task) new.save() return render(request,"main/form.html")
Cree un nuevo archivo dentro de su aplicación y asígnele el nombre urls.py
Python3
from django.urls import path from .views import * urlpatterns = [ path('',home,name="home"), ]
Agregue main.urls en las URL del proyecto
miproyecto/urls.py
Python3
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('',include("main.urls")) ]
Para ejecutar el comando de escritura de la aplicación
python manage.py runserver
Producción
Página de administrador
Publicación traducida automáticamente
Artículo escrito por vivekpisal12345 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA