{"id":3150,"date":"2021-05-25T15:43:11","date_gmt":"2021-05-25T20:43:11","guid":{"rendered":"https:\/\/linuxitos.com\/main\/?p=3150"},"modified":"2021-05-25T15:54:12","modified_gmt":"2021-05-25T20:54:12","slug":"django-proyecto-login-registro-abc-base-de-datos-y-ajax","status":"publish","type":"post","link":"https:\/\/linuxitos.com\/main\/django-proyecto-login-registro-abc-base-de-datos-y-ajax\/","title":{"rendered":"Django : Proyecto login, registro, abc base de datos y ajax"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-15-06-22.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"742\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-15-06-22-1024x742.png\" alt=\"\" class=\"wp-image-3151\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-15-06-22-1024x742.png 1024w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-15-06-22-300x217.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-15-06-22-768x556.png 768w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-15-06-22.png 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Introducci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Django es un framework de aplicaciones web gratuito y de c\u00f3digo abierto (open source) escrito en Python. Un framework web es un conjunto de componentes que te ayudan a desarrollar sitios web m\u00e1s f\u00e1cil y r\u00e1pidamente. <br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.djangoproject.com\/download\/\" target=\"_blank\">https:\/\/www.djangoproject.com\/download\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Iniciando en el aprendizaje de django, desarroll\u00e9 \u00e9ste proyecto, en el que inclu\u00ed algunas de las funciones que se requieren en proyectos que se usan en producci\u00f3n. \u00c9ste proyecto no es para usarse en producci\u00f3n, es solo para aprender, y ver una forma de hacer las cosas utilizando o no ajax, una idea sobre todo. Sobre todo le ser\u00e1 \u00fatil a qui\u00e9n comience a desarrollar en \u00e9ste framework.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Login<\/li><li>Registro<\/li><li>Actualizaci\u00f3n de perfil<\/li><li>Imagen de perfil<\/li><li>B\u00fasqueda simple con scroll infinito y ajax<\/li><li>Uso de ajax en guardado de datos<\/li><li>Paginaci\u00f3n usando ajax<\/li><li>Eliminaci\u00f3n de registros usando ajax<\/li><li>Actualizaci\u00f3n de registros sin ajax<\/li><li>Subida de im\u00e1genes con ajax<\/li><li>Uso de mariadb<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Requerimientos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El proyecto se desarroll\u00f3 bajo fedora 34, sin embargo, lo pueden probar en otros entornos, siempre y cuando se instalen las dependencias y paquetes necesarios para su funcionamiento.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Fedora 34 (no probado en otro SO)<\/li><li>Bootstrap 5.0.1<\/li><li>Jquery 3.6.0<\/li><li>Django 3.2.3<\/li><li>Python 3.9.5<\/li><li>mariadb 10.4<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Instalaci\u00f3n de dependencias en Fedora 34<\/h3>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo dnf install python3-devel mysql-devel python3-virtualenv<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">export MYSQLCLIENT_CFLAGS=`pkg-config mysqlclient --cflags`<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">export MYSQLCLIENT_LDFLAGS=`pkg-config mysqlclient --libs`<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Instalaci\u00f3n de XAMPP o mariadb de manera local, cualquiera de las dos opciones es viable, pero sugiero que sea usando XAMPP, es m\u00e1s f\u00e1cil.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/blog.linuxitos.com\/post\/instalar-xampp-8-0-3-fedora-34\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/blog.linuxitos.com\/post\/instalar-xampp-8-0-3-fedora-34<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez instalado xampp y configurado los usuarios y contrase\u00f1as, es necesario crear la base de datos con el nombre django_app1<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"514\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-12-1024x514.png\" alt=\"\" class=\"wp-image-3153\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-12-1024x514.png 1024w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-12-300x151.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-12-768x386.png 768w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-12-1536x771.png 1536w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-12-1600x803.png 1600w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-12.png 1922w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Configurar el proyecto<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Clonar proyecto<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El proyecto se pude descargar de aqu\u00ed <a href=\"https:\/\/gitlab.com\/ferm\/djando-crud-ajax-login\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gitlab.com\/ferm\/djando-crud-ajax-login<\/a><\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">git clone git@gitlab.com:ferm\/djando-crud-ajax-login.git<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Crear el entorno virtual<\/h3>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">virtualenv -p python3 .<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Activar el entorno de python<\/h3>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">source bin\/activate<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Instalar requerimientos<\/h3>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">pip3 install -r requirements.txt<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Configurar archivo settings.py para base de datos<\/h3>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">DATABASES = {\n'default': {\n\t'ENGINE': 'django.db.backends.mysql',\n\t'NAME': 'django_app1',\n\t'USER': 'ususus',\n\t'PASSWORD': 'asdhadjkhsd',\n\t'HOST': '127.0.0.1',\n\t'PORT': '3306',\n\t'OPTIONS': {\n\t\t'charset': 'utf8',\n\t\t'use_unicode': True,\n\t\t'init_command': 'SET '\n\t\t'storage_engine=INNODB,'\n\t\t'character_set_connection=utf8,'\n\t\t'collation_connection=utf8_bin'\n\t},\n\t'TEST_CHARSET': 'utf8',\n\t'TEST_COLLATION': 'utf8_general_ci',\n}\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Configurar la conexi\u00f3n a la base de datos, de acuerdo a los datos propios que se usen:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Generar archivo de migraciones<\/h3>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">python manage.py makemigrations<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Migrar a la base de datos<\/h3>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">python manage.py migrate<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-04.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"490\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-04-1024x490.png\" alt=\"\" class=\"wp-image-3158\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-04-1024x490.png 1024w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-04-300x144.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-04-768x367.png 768w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Screenshot-from-2021-05-25-11-03-04.png 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Iniciar servidor<\/h3>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">python manage.py runserver<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Al entrar  a la url, del proyecto <a href=\"http:\/\/127.0.0.1:8000\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/127.0.0.1:8000<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Peek-2021-05-25-15-12.gif\"><img loading=\"lazy\" decoding=\"async\" width=\"1331\" height=\"900\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2021\/05\/Peek-2021-05-25-15-12.gif\" alt=\"\" class=\"wp-image-3155\"\/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Y si hay errores o algo, favor de dejar un comentario y espero poder ayudar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Django es un framework de aplicaciones web gratuito y de c\u00f3digo abierto (open source) escrito en Python. Un framework web es un conjunto de componentes que te ayudan a desarrollar sitios web m\u00e1s f\u00e1cil y r\u00e1pidamente. https:\/\/www.djangoproject.com\/download\/ Iniciando en el aprendizaje de django, desarroll\u00e9 \u00e9ste proyecto, en el que inclu\u00ed algunas de las funciones [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1540,137],"tags":[1760,1758,1561,1757],"class_list":["post-3150","post","type-post","status-publish","format-standard","hentry","category-develepmet","category-mariadb","tag-crud-django","tag-django","tag-fedora","tag-python"],"_links":{"self":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/3150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/comments?post=3150"}],"version-history":[{"count":5,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/3150\/revisions"}],"predecessor-version":[{"id":3159,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/3150\/revisions\/3159"}],"wp:attachment":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/media?parent=3150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/categories?post=3150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/tags?post=3150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}