Primeros pasos con Django: instalación

in #utopian-io7 years ago

django-logo
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:
screenshot-django-01
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”

screenshot-django02

screenshot-django03

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

Sort:  

@kit.andres me gustaría conocer tu opinion

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

By upvoting this notification, you can help all Steemit users. Learn how here!

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.

  • Need further explanation on this.

You may edit your post here, as shown below:

You can contact us on Discord.
[utopian-moderator]

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.

  • There was no response from the user with reference to the query raised earlier last 24 hours +.
  • This thus will be counted as a possible plagiarism.

You can contact us on Discord.
[utopian-moderator]

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

Congratulations @paracelso! You received a personal award!

1 Year on Steemit

Click here to view your Board of Honor

Do not miss the last post from @steemitboard:

Saint Nicholas challenge for good boys and girls

Support SteemitBoard's project! Vote for its witness and get one more award!

@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!

Congratulations @paracelso! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

You can upvote this notification to help all Steem users. Learn how here!

Coin Marketplace

STEEM 0.19
TRX 0.14
JST 0.030
BTC 60115.50
ETH 3192.77
USDT 1.00
SBD 2.45