Python & Django tips, este el el aputne 01
# --------------------------------------------------------------------------------
# -- Python
# --------------------------------------------------------------------------------
# Ver version de Python
$ python -V
# --------------------------------------------------------------------------------
# -- Impresion y comentarios
# --------------------------------------------------------------------------------
print("Yo soy una frase")
print('Yo soy una frase')
# print('Yo soy una frase') este es comentario
print('...........................................')
# --------------------------------------------------------------------------------
# -- Operadores matemáticos
# --------------------------------------------------------------------------------
print(6+6)
print(6/6)
print(6*6)
print("Residuo: " + str(25%4))
print("Residuo: " , str(25%4)) # Se puede concatenar de 2 maneras (, y +)
print("La suma de 6 + 5 es: " + str(6 + 5))
print(5 <= 2) # retorna False (es 5 menor o igual a 2?)
print(5 >= 2) # retorna True (es 5 mayor o igual a 2?)
print(5 == 2) # retorna False (es 5 igual a 2?)
print(5 != 2) # retorna True (es 5 diferente de 2?)
print("Son iguales?")
print(3 == 3 and 4 == 4 and 8 == 8) # Retorna true (tyodas son ciertas)
print(3 == 98 or 4 == 4 and 8 == 8) # Retorna true (por el or, cumple una de las condiciones)
print('...........................................')
# --------------------------------------------------------------------------------
# -- Varaibles
# --------------------------------------------------------------------------------
Edad = 29
Edad2 = "29"
Nombre = "Wilzon"
Apellido = "Mariño Bueno"
MeDedico = "Me dedico a la programación web..."
Web = "WilzonMB.com"
# Aca se puede concatenar de 2 maneras, y los numero se puede concatenar con str()
print("Mi edad es: " + Edad2)
print("Mi nombre es: " + Nombre + " Y mi edad es: " + str(Edad) + " y " + MeDedico + "Mi web es: " + Web)
print("Mi nombre es: " , Nombre , " Y mi edad es: " + str(Edad) , " y " , MeDedico , "Mi web es: " , Web)
print('...........................................')
# Concatenar de otro modo, el "%" indica que va llamar a la cadena y la "s" significa que debe ser tratada como string.
# A los strings se le llama con "%s" y a l numero con "%d"
print("Concatenar de otro modo.")
print("Mi nombre es %s: " %Nombre)
print("Mi nombre completo es: %s %s" %(Nombre, Apellido))
print("Mi nombre completo es: %s %s y mi edad es %d mitad de mi edad es %d" %(Nombre, Apellido, Edad, Edad/2))
print('...........................................')
# Operaciones algo así no está prohibido. multiplcar el string
print("El triple de mi nombre es: ",(Nombre*3))
print('...........................................')
# --------------------------------------------------------------------------------
# -- Caracteres de escape, salto de linea, tabulación
# --------------------------------------------------------------------------------
print("Mi nombre completo es \"Wilzon Mariño Bueno\" ")
print('Mi nombre completo es \'Wilzon Mariño Bueno\' ')
print('...........................................')
# Salto de linea: "\n" y "\r"
# Con la "\n" hacemos el salto de linea. Quiere decir nueva linea
# Con la "\r" hacemos el salto de linea. Quiere decir retorno de carro
# La "\n" y la "\r" hacen lo mismo
# Sistema basado en Unix, Linux, MAC le da mas aprecio a "\n" y Windows le da más aprecio a "\r", asi que es recomendable poner los dos.
print('Mi nombre completo es \'Wilzon Mariño Bueno\' \n y esto es otra linea ')
print('Mi nombre completo es \'Wilzon Mariño Bueno\' \n \r y esto es otra linea ')
print('...........................................')
# Tabulación: "\t"
print("Nombre\t Edad \t Poblacion")
print("Wilzon Mariño\t 45\t Lima")
print("Mario\t 55\t Tumbes")
print("Pedro\t 66\t Ica")
print('...........................................')
# --------------------------------------------------------------------------------
# -- Entradas de usuarsio
# --------------------------------------------------------------------------------
# Preguntar al usuario y ostrar su nombre
print('Dime tu nombre')
nombre = input()
print("El nombre que has introducido es: ", nombre)
print('...........................................')
# Con esto mostramos la pregunta y el cursos listo para escribir
edad = input("Y ahora dime tu edad >")
edadNumero = int (edad)
print('...........................................')
# Con esto lo multiplica como cadena para protegerse
print("Y el triple de tu edad es: ", (edad*3))
print('...........................................')
# Aca hace lo mismo lo toma como cadena, para protegerse no es suficiente con poner la "%d" y nos va dar error
# print("Y el triple de tu edad es: %d"%(edad*3))
# Con esto igual lo trata como cadena y como entero
#print("Y el triple de tu edad es: %d"%edadNumero*3)
#print('...........................................')
# Con esto lo solucionamos poniendolo en "()"
print("Y el triple de tu edad es: %d"%(edadNumero*3))
print('...........................................')
# --------------------------------------------------------------------------------
# -- Programa de promedio
# --------------------------------------------------------------------------------
nombre1 = input("Dime el nombre del primer usuario> ")
edad1 = input("Dime su edad> ")
nombre2 = input("Dime el nombre del segundo usuario> ")
edad2 = input("Dime su edad> ")
nombre3 = input("Dime el nombre del tercer usuario> ")
edad3 = input("Dime su edad> ")
#edad1b = int
suma = int(edad1) + int(edad2) + int(edad3)
promedio = suma / 3
print("El promedio de las 3 edades de los usuarios es:",promedio)
print('...........................................')
# --------------------------------------------------------------------------------
# -- Archivos del disco duro
# --------------------------------------------------------------------------------
# -- Leer archivos del disco duro
texto = open("hola.txt")
print(texto.read())
print('...........................................')
# Rutas relativas
#texto = open("doc/hola.txt")
#texto = open("../hola.txt")
#texto = open("../carpeta/hola.txt")
# -- Abrir en modo de escritura
texto = open("hola.txt", "w")
texto.truncate() # Con esto eliminamos todo mel contenido
texto.write("Estoy escribiendo el texto.")
texto.close() # Cerrar archivo
print('...........................................')
# -- Añadir datos en el archivo "agenda.csv"
texto = open("agenda.csv", "a")
texto.write("Wilzon, 992928751\n")
texto.write("Roberto, 999989898\n")
texto.write("Gil, 77777\n")
texto.close() # Cerrar archivo
print('...........................................')
# -- Leer datos del archivo "agenda.csv"
texto = open("agenda.csv")
#print(texto.read())
print(texto.readline())
print(texto.readline())
print('...........................................')
# --------------------------------------------------------------------------------
# -- Esdtructuras de control
# --------------------------------------------------------------------------------
# - For
for i in range(0,3):
print(texto.readline())
print("Fin de lectura de la agenda.csv")
# - While
numero = 0;
while numero < 5:
print(texto.readline())
numero = numero + 1
# - If / elif
edad = 20
# Modo 01
if edad < 40:
print("Menor a 40")
else:
print("Mayor a 40")
# Modo 02
if edad < 90:
print("Menor a 40")
elif edad == 90:
print("Igual a 40")
else:
print("Mayor a 40")
print('...........................................')
# --------------------------------------------------------------------------------
# -- Reemplazo de caracteres
# --------------------------------------------------------------------------------
texto = "Esta es una palabara y esta otra, hola como estas"
print(texto.replace("a","xxx")) # Reemplaza la letra "a" por "xxx"
print('...........................................')
# --------------------------------------------------------------------------------
# -- Creacion y llamdao de funciones
# --------------------------------------------------------------------------------
# - Crear la funciones sin parametro
def bienvenidos():
print("Este es texto de la funcion bienvenidos()")
def funcion02():
print("Este es texto de la funcion funcion02()")
bienvenidos() # Llamando la funcion
funcion02() # Llamando la funcion
print('...........................................')
# - Crear la funciones con parametro
def bienvenidos(parametro):
print("Este es texto de la funcion bienvenidos()")
print(parametro)
def funcion02(texto):
print("Este es texto de la funcion funcion02()")
print("Valor del parametro :"+str(texto))
def listar(fin):
print("Listando contenido...")
agenda = open("agenda.csv")
numero = 0
for i in range(0,fin):
lectura = agenda.readline()
print(lectura.replace(",","\t\t"))
numero = numero + 1
print("Fin de lectura de la agenda")
agenda.close()
def buscador(nombreBuscado):
print("Buscando contenido...")
agenda = open("agenda.csv")
for i in range(1,30):
lectura = agenda.readline()
partido = lectura.split(",")
if nombreBuscado == partido[0]:
print(partido[1])
agenda.close()
bienvenidos("Este es texto :)") # Llamando la funcion
funcion02(18) # Llamando la funcion
listar(5) # Listar 5 elementos
print('...........................................')
# --------------------------------------------------------------------------------
# -- Creacion de módulos
# --------------------------------------------------------------------------------
# Las dos funciones con parametros lo hemos guardado en otro archivo llamado "funciones.py", que ahora lo denmominaremos modulo, y lo importaremos
import funciones
# Aqui llamamos con funciones.bienvenidos("aqui el valor")
funciones.bienvenidos("Este es texto, se esta reutilizado el codigo :)") # Llamando la funcion
funciones.funcion02(18) # Llamando la funcion
funciones.listar(5) # Listar 5 elementos
# --------------------------------------------------------------------------------
# --------------------------------------------------------------------------------
# -- Python con Django
# --------------------------------------------------------------------------------
# --------------------------------------------------------------------------------
# Tutorial https://docs.djangoproject.com/en/1.7/intro/tutorial01/
# En cmd ejecutar los siguientes comandos para instalar Django
$ python setup.py install
# Crear nuevo proyecto, para eso nos ubicamos en la carpeta de nuestro proyecto y ejecutamos este comando. nombre de nuestro proyecto es "primerejemplo"
$ python C:/Python34/Lib/site-packages/Django-1.7.1-py3.4.egg/django/bin/django-admin.py startproject primerejemplo
# Ahora que hemos creado el proyecto con Django, en esa carpeta de nuestro proyecto hay un archivo llamado "manage.py" y tenemos que ejecutar ese archivo para que se convierta en servidor. (lo que en ¨PHP nuestro servidor era Apache) Y no tenemos que cerrar esa consola, aca nos indica la ruta para poder visualizar nuestra web :)
$ python manage.py runserver
# Ya que un proyecto puede tener muchos aplicaciones y que una aplicacion puede existir en diferentes proyectos, en este proyecto creamos la aplicacion "blog"
python manage.py startapp blog
# Sincronizar con la base de datos, y seguir las pasos que te pide, claev, email, etc.
$ python manage.py syncdb
# Una ves creado el modelo del blog en "blog/model.py" creamos - migramos la base de datos, (en primerejemplo/settings.py en INSTALLED_APPS = () al final poner 'blog',):
# from django.db import models
#
# class Entrada(models.Model):
# titulo = models.CharField(max_length=200)
# contenido = models.CharField(max_length=2000)
# fecha = models.DateTimeField('Fecha de publicacion')
#
# class Comentario(models.Model):
# entrada = models.ForeignKey(Entrada)
# contenidocomentario = models.CharField(max_length=1000)
# Mediante la ejecución de makemigrations, usted está diciendo a Django que usted ha hecho algunos cambios en sus modelos (en este caso, usted ha hecho los nuevos) y que desea que los cambios se almacenan como una migración.
# Las migraciones son cómo Django almacena cambios en sus modelos (y por lo tanto el esquema de base de datos) - son simplemente los archivos en el disco. Usted puede leer la migración para su nuevo modelo si lo desea; es el de blog de archivos / migraciones / 0001_initial.py. No se preocupe, usted no espera que usted leerlos cada vez que Django hace uno, sino que están diseñados para ser humano-editable en caso de que quiera ajustar manualmente cómo Django cambia las cosas.
$ python manage.py makemigrations blog
# Con esto creamos el squema de base de datos
# Con este comando debería ver algo similar a lo siguiente (he cambiado el formato para facilitar la lectura):
$ python manage.py sqlmigrate blog 0001
# Ahora, ejecute migrar de nuevo para crear los modelos de cuadro en su base de datos.
# El comando migrate toma todas las migraciones que no han sido aplicadas (Django rastrea cuáles se aplican utilizando una mesa especial en su base de datos llamada django_migrations) y les va en contra de su base de datos - en esencia, la sincronización de los cambios realizados en sus modelos con el esquema en la base de datos.
$ python manage.py migrate
# Las migraciones son muy potentes y permiten cambiar sus modelos con el tiempo, a medida que desarrolle su proyecto, sin la necesidad de eliminar la base de datos o las tablas y hacer otros nuevos - se especializa en la actualización de su base de datos en vivo, sin perder datos. Ahora, recordamos la guía de tres pasos para hacer cambios en el modelo:
# 1.- Cambiar los modelos (en models.py).
# 2.- Ejecutar makemigrations python manage.py para crear migraciones de esos cambios
# 3.- Python manage.py Run migrar a aplicar esos cambios a la base de datos.
# ------------------ hasta aca ya se puede usar la administracion de Django, agreagr contenido, comenatrio, etc ------------------
# --------------------------------------------------------------------------------
# -- Crear la vista del usuario
# --------------------------------------------------------------------------------
# ahora mostramos los titulos en la vista en "blog/views.py" (en primerejemplo/urls.py hay que agregar la url url(r'^blog/', 'blog.views.index'),):
#from django.shortcuts import render
#
# from blog.models import Entrada
# from django.http import HttpResponse
#
# def index(request):
# #return HttpResponse("Bienvenidos a mi blog :)")
# verentradas = Entrada.objects.all().order_by('-fecha')[:5]
# output = ','.join([p.titulo for p in verentradas])
# return HttpResponse(output)
# ------------------ hasta aca ya se puede funciona todo lo que es basico, vista del usuairo y administrracion --------------------------
# --------------------------------------------------------------------------------
# -- Ayduas, utilitarios, comandos, tips
# --------------------------------------------------------------------------------
# Creando un usuario administrador
$ python manage.py createsuperuser
# Inicie el servidor de desarrollo por defecto usa el puerto 127.0.0.1:8000
# Podemos cambiar el puerto de esta manera: $ python manage.py runserver 8888
$ python manage.py runserver
# Link de administrador
http://127.0.0.1:8000/admin/
# Mostrar - registrar en el admini tus aplicaciones, ejemplo en blog/admin.py:
from django.contrib import admin
from blog.models import Entrada
from blog.models import Comentario
# Register your models here.
admin.site.register(Entrada)
admin.site.register(Comentario)