Saltar al contenido

¿Cómo insertar datos en la base de datos django desde el archivo views.py?

Después de de una larga recopilación de datos dimos con la respuesta este atasco que pueden tener muchos de nuestros lectores. Te ofrecemos la solución y nuestro objetivo es que te sea de mucha apoyo.

Solución:

Tu pregunta es muy poco clara. Probablemente deberías seguir el tutorial de django.

Pero seguro que puede insertar datos en la base de datos desde las vistas. Suponga que tiene un modelo llamado Foo:

modelos.py

class Foo(models.Model):
    name = models.CharField(max_length=100)

ver.py

from .models import Foo

def some_name(request):
    foo_instance = Foo.objects.create(name='test')
    return render(request, 'some_name.html.html')

Simplemente puede crear una instancia de uno de sus modelos y guardarla. Supongamos que tiene un modelo de artículo:

from django.http import HttpResponse
from django.template import loader

from .models import Article


def index(request):
    article = Article()
    article.title = 'This is the title'
    article.contents = 'This is the content'
    article.save()

    template = loader.get_template('articles/index.html')
    context = 
        'new_article_id': article.pk,
    
    return HttpResponse(template.render(context, request))

Una manera fácil de hacer esto sería hacer uso de la función de creación. Mencionando el nombre del campo y sus valores. El siguiente código ilustrado lo ayuda a insertar datos en su base de datos desde views.py y mostrar el contenido de la base de datos en la página html.

Supongamos que tenemos una mesa que se parece a esto

Name      Age     Marks
Bunny      4       10
Tanishq    12      12

El models.py se parece a esto

from django.db import models

# Create your models here.
class Student(models.Model):

    student_name = models.CharField(max_length = 120)
    student_age = models.IntegerField()
    student_marks = models.IntegerField()

Así que views.py se vería algo como

from django.shortcuts import render
from .models import Student    # Student is the model class defined in models.py

# Assuming the data to be entered is presnet in these lists
stud_name = ['Aman', 'Vijay']
stud_age = [13, 12]
stud_marks = [20, 22]

def my_view(request, *args, **kwargs):

    # Iterate through all the data items
    for i in range(len(stud_name)):

        # Insert in the database
        Student.objects.create(Name = stud_name[i], Age = stud_age[i], Marks = stud_marks[i])


    # Getting all the stuff from database
    query_results = Student.objects.all();

    # Creating a dictionary to pass as an argument
    context =  'query_results' : query_results 

    # Returning the rendered html
    return render(request, "home.html", context)


El siguiente debe ser el archivo home.html para mostrar todos los datos ingresados




    



HOME

% for item in query_results % % endfor %
Name Age Marks
item.student_name item.student_age item.student_marks

Comentarios y valoraciones

Si te ha sido provechoso nuestro artículo, sería de mucha ayuda si lo compartes con más programadores de este modo nos ayudas a extender este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *