Git Product home page Git Product logo

entrega1-bazan's Introduction

ProyectoCoder/AppCoder

Funcionalidad y pruebas del Proyecto

Para probarlo lo primero que se debe hacer es:

  1. En la consola de VSC (Command Prompt), colocar: "python manage.py runserver" para que el servidor empiece a correr el proyecto.
  2. Iniciar sesión en Django Administrator con el User: abril_bazan y la Password: R5yMS41jO1P2

Creación de formularios (api form Django)

Un formulario es una vista que permite poder agregar datos a nuestro model directamente desde nuestra web. El archivo html correspondiente recibe la información que le enviamos por medio de la vista y su template asociado. Al apretar un botón (Submit) esa información viaja por medio de un método GET o POST y llega al servidor, donde esos datos se manipulan.

Los archivos dentro de AppCoder que son muy necesarios para entender el Proyecto son:

  • El archivo models.py, encontrados allí los modelos.
  • El archivo forms.py, con las clases para crear el o los formularios.
  • El archivo views.py, donde se pueden ver las vistas.
  • El archivo urls.py, en el cual se linkean esas mismas vistas.
  • El archivo admin.py, en donde se podrá linkear el modelo correspondiente para que se muestre en Django administration.
  • Y las templates html, en donde se mostrarán las vistas.

Se crea un modelo en models.py. Luego, se actualiza forms.py añadiendo la clase correspondiente al modelo para que se cree un formulario. Después, se crean sus respectivas vistas en views.py, en caso de ejemplo, para el modelo Album, se agregaron, vistas album_formulario, busqueda_album y buscar_album. Una vez realizado esto, se deben de crear los archivos html donde se renderizan estas clases en su orden. También, para que todo funcione, se necesita agregar los paths a urls.py de aquellas views para que se puedan acceder desde la web, una vez el servidor esté corriendo. No se debe olvidar linkear todos los modelos, junto con sus formularios, que sean necesarios con un import al principio del archivo views.py ya que de eso depende de que las vistas funcionen correctamente.

Recibimos en el html, la etiqueta form para crear el formulario, de esa manera se utiliza menos código html. Luego, podemos ver la carga de datos en views.py, en el caso particular de album_formulario nos encontramos con tres campos: nombre_album, creador y año, que reciben información externa mediante el formulario. Se puede observar que es requerido mediante el método POST dentro de un if desde el formulario creado anteriormente (Album_form) dentro de forms.py. Si la información requerida es válida, cumple con los requisitos del segundo if, en donde se crea un diccionario con esa misma información retirando lo innecesario con "info= form.cleaned_data". Luego de que los datos se coloquen en las variables correspondientes, se llama a la clase Album con sus tres atributos: albums=Album(nombre_album=nombre_album, creador=creador, año=año), guardándolos y renderizando hacia el archivo html inicio. Sino, se crea un formulario vacío, se renderiza y se manda como un diccionario para que lo pueda usar la template html.

Si nos concentramos en la etiqueta form podemos ver:

  1. Action, que es el nombre de la url.
  2. Method, el cual es la forma en la que se envían los datos.
  3. Input, aquellos espacios para escribir información.
  4. Input Submit, que sería el botón que envía la información.

En el caso en el cual se necesita el token de validación que nos exige Django (csrf_token), es aquel donde se utiliza el método POST. Al contrario, si se utiliza el método GET, no se debe utilizar. De esta forma podemos guardar en la base de datos los datos recibidos por medio del form.

Es muy importante modificar el archivo views.py importanto de esta manera la api forms: from AppCoder.forms import album_formulario

Formulario para búsqueda

Si queremos saber si tenemos el nombre de un album que corresponde a una determinada lista de albums, hay dos alternativas, o existe o no existe. Lo que se necesitó es:

1- Una vista busqueda_album(request)

2- El url registrado en urls.py

3- La template busqueda_album.html

4- Y la vista buscar (también registrada en urls.py)

Primero, en busqueda_album(request), se renderiza al archivo busqueda_album.html para que muestre el formulario de busqueda. Después, dentro de la vista buscar, utilizando el método GET, buscamos el album guardándolo dentro de una variable denominada "nombre_album". En la variable "albums", notamos una búsqueda por filtros en la base de datos con objects.filter dentro de la clase Album. Luego, se renderiza en un archivo nuevo, resultados_busqueda_album.html, y se muestra el resultado. Dentro de la template de respuesta, podemos ver una sentencia if y dentro, un for, donde se encuentra la lista con el nombre del album y su creador de manera en la que se requirió. Sino, se encuentra un error en lo requerido, devolviendo otro diccionario: {"error": "No se ingresó ninguna comisión"}.

En los archivos html, si nos enfocamos en los formularios, están realizados con Django, el cual permite importar formularios desde este mismo framework. También se encuentran los errores del formulario por si algo sale mal, es decir, si no se encuentra lo que se busca, si no completó algún campo, etc.

entrega1-bazan's People

Contributors

abril-bazann avatar

Watchers

 avatar

entrega1-bazan's Issues

Simplificar formularios

1 form para agregar:

cancion-->Playlist
album-->Album
artista-->Artista

1 form de búsqueda que busca:

canciones
albums
artistas


Por ejemplo en el formulario de playlist, se está ingresando una cancion, el artista y el album. La idea seria que cuando se llene el formulario, se guarde en tu clase playlist el nombre de la cancion, en tu clase artista: el nombre del artista y en tu clase album el nombre del album, de esta manera se estaria agregando datos de un unico formulario a tus 3 clases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.