Django es hoy por hoy uno de los mejores frameworks de backend, es ligero rápido, y lo mas estable tiene un ORM del que simplemente te enamoras y en el ambiente laboral es de los mas solicitados hoy en día en este tutorial te explicare como crear tu primer proyecto en Django en ubuntu:
Requisitos:
lo primero que debemos instalar para trabajar en django es obviamente python pero como este ya viene instalado en el core de ubuntu podemos saltarnos este paso y irnos a la instalación de su gestor de paquete(Pip), para estro primero actualizaremos el índice de paquetes local antes de iniciar:
$sudo apt-get update
luego dependiendo de la version que tengamos de python instalaremos la correspondiente version de pip:
para python 2.x :
$python -V
Python 2.x.xx
$sudo apt-get install python-pip
para python 3.x :
$python -V
Python 3.x.xx
$sudo apt-get install python3-pip
creamos nuestro virtualenve en el directorio que nos parezca mas conveniente con el nombre que escogemos en este caso:
$virtualenv newenv
luego de esto observaremos que se ha creado una carpeta con el nombre newenv donde se alojaran todos los paquetes para hacer que nuestra App en django funcione. Mientras tengamos nuestro virtualenv activo cada dependencia de pip se instalara dentro de este directorio para activarlo debemos usar el siguiente comando:
$source newenv/bin/activate
(newenv)$
podremos observar que luego de esto en nuestra terminal aparecerá entre parenthesis el nombre de nuestro virtualenv indicando que esta activo, en cuyo caso queramos desactivarlo el comando seria:
(newenv)$deactivate
$
Ahora iniciaremos nuestra primera app:
Para crear nuestra primera App debemos primero activar nuestro virtualenv, y luego correr el siguiente comando:
$source newenv/bin/activate
(newenv)$django-admin startproject localExample
ahora si quieren comprobar que han tenido una instalación exitosa de su App les recomiendo este incredible paquete que les servirá de mucho en el futuro:
(newenv)$sudo apt-get install tree
(newenv)$tree localExample
localExample
├── localExample
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
└── manage.py
1 directory, 10 files
tree es un paquete que les permitirá ver todo el árbol de directorios de una carpeta. ahora en teoría podríamos correr nuestro servidor, es mas intentemoslo:
(newenv)$cd localExample
(newenv)~/localExample$python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 28, 2017 - 21:02:36
Django version 1.10.1, using settings 'localExample.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[28/Jun/2017 21:02:51] "GET / HTTP/1.1" 200 1767
si vamos a la dirección correspondiente en nuestro navegador http://127.0.0.1:8000/ podremos ver esto:
nuestra app esta corriendo en su nivel mas básico pero que paso los que somos mas intuitivos podremos habernos dado cuenta de esto:
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
este “problema” es muy sencillo es django pidiéndonos correr el comando “python manage.py migrate” que nos indica que hay migraciones que nos hacen falta.
python manage.py migrate:
la documentacion oficial de dillango nos dice que:
Las migraciones son la forma de Django de propagar los cambios que realices en tus modelos (agregar un campo, eliminar un modelo, etc.) En el esquema de la base de datos.Están diseñados para ser en su mayoría automáticos, pero tendrá que saber cuándo realizar las migraciones, cuándo ejecutarlas y los problemas comunes que puede encontrar.
las migraciones son una especie de control de versiones de nuestra base de datos, estas por lo general se encuentran íntimamente relacionadas con nuestros modelos y son las que permiten atrevas de el comando “python manage.py migrate” se generen de forma automática nuestra bases de datos sin tener que entrar en gestores de bases de datos como phpMyAdmin.
regresando a nuestra terminal:
(newenv)~/localExample$python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying sessions.0001_initial... OK
(newenv)~/localExample$tree .
.
├── db.sqlite3
├── localExample
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
└── manage.py
1 directory, 10 files
ahora podremos observar que se a creado un archivo llamado db.sqlite3 que es nuestra base de datos, .sqlite3 es el motor de base de datos por defecto de django mas adelantes podremos modificar lo pero para propósitos de este tutorial se dejara así.
Ahora que, ho! cierto el admin:
una de las características mas potentes y envidiables de django es su admin que se auto genera y el cual nos permite un absoluto control sobre toda nuestra base de datos desde nuestra aplicación para entrar en este lo primero que debemos hacer es crearnos nuestro “super user”:
(newenv)~/localExample$python manage.py createsuperuser
Username (leave blank to use 'xxxxx'): xxxxx
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.
(newenv)~/localExample$python manage.py runserver
python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
June 28, 2017 - 21:45:16
Django version 1.10.1, using settings 'localExample.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ahora podemos observar que 2 cambios importantes, primero que ya no aparece el aviso de django que nos pide correr el comando “python manage.py migrate” y el segundo cambio importante lo observaremos al entrar en la url “http://127.0.0.1:8000/admi” en la que deberemos logearnos con los mismos datos que colocamos al correr el comando “python manage.py createsuperuser”
Fuente: medium
felicidades ya tienes un cómodo boilerplate(base) para tus propios proyectos con django, espero poder seguir ayudando te con tus dudas.
facebook, instagram, medium
github
Posted on Utopian.io - Rewarding Open Source Contributors
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://medium.com/@cesar.23.1995/primeros-pasos-con-django-733fb9bf94e3
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@kit.andres me gustaría conocer tu opinion
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @paracelso! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes received
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Your contribution cannot be approved yet. See the Utopian Rules. Please edit your contribution to reapply for approval.
https://medium.com/@cesar.23.1995/primeros-pasos-con-django-733fb9bf94e3 This seems to be similar to yours.
You may edit your post here, as shown below:
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Your contribution cannot be approved because it does not follow the Utopian Rules, and is considered as plagiarism. Plagiarism is not allowed on Utopian, and posts that engage in plagiarism will be flagged and hidden forever.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Esta publicación fue Votada por @gentebitcoin y SEGUIDORES !!!
Saludos te siguire y votare por ti me ayudas Sígueme y VOTA por MI COMO TESTIGO!! yo soy 😎@gentebitcoin😎 en STEEMIT.COM
¿YA Sabes cómo hacer que tu publicación valga hasta $1000 DÓLARES ? se parte de mi PROYECTO 👷🔰📰🌎
Chat de apoyo😃😱😲😲
https://discord.gg/c4eTbjh💰
do you know How to generate up to $ 1000 with some publications in the Steemit???
unete y formemos el GRUPO de los 1000K💰💪votemos juntos
Faused que Recomiendo!! ABRIR EL LINK 😀👷💃
https://steemit.com/introducemyself/@gentebitcoin/como-trabajar-con-steemit-com-y-eobot-com
Sorteo desde 200 Dogecoins para SteemPower 💰💰💰😲😲😲😲 se mi Referido en EOBOT.COM Registrarte en STEEMIT.COM enviando 0.002SBD o Steem envia DONACIONES para repartir envía 0.05 SBD recibir hasta 0.1 en SBD o Steem
Se mi Referido!😎👷💪
https://www.eobot.com/new.aspx?referid=1098621
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @paracelso! You received a personal award!
Click here to view your Board of Honor
Do not miss the last post from @steemitboard:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@paracelso, thank you for supporting @steemitboard as a witness.
Here is a small present to show our gratitude
Click on the badge to view your Board of Honor.
Once again, thanks for your support!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @paracelso! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit