Re: [Python-es] migraciones con multiples bases de datos en django
Sí, yo al final entendí también que des de django consideran esta la forma correcta. Para mi tiene sentido. En cualquier caso, me lo dejé documentado para mi yo futuro y por si le interesara a alguien :P https://self.paudirac.com/blog/legacy-databases-in-django/ ¡Gracias!, - Pau Python..., what else? On Mon, May 9, 2022 at 1:38 PM Juan Ignacio wrote: > Tengo el mismo problema y, por lo que he podido ver, no hay forma facil > de resolverlo. Yo por el momento tengo una receta en un Makefile para > migrar, donde especifico para cada app, la base de datos a usar. Los > routers no se usan, como tu dices, en estos casos. Ademas, por lo que vi en > su dia, los de Django insisten en que esta es la manera correcta y no > tienen planes de cambiarlo. > > On Fri, 6 May 2022 at 12:14, Pau Cervera wrote: > >> Buenas, >> >> Tengo una duda sobre cómo maneja Django las migraciones con múltiples >> bases de datos.En mi caso tengo dos DATABASES en el settings >> >> DATABASES = { >> 'default': { >> 'ENGINE': 'django.db.backends.mysql', >> 'NAME': 'producto', >> }, >> 'legacy': { >> 'ENGINE': 'django.db.backends.mysql', >> 'NAME': 'legacy-schema', >> } >> } >> >> la DB default está manejada por django desde siempre y la legacy tiene >> modelos generados vía inspecdb en una django application que también se >> llama legacy. En un principio la BD legacy era de sólo lectura, con lo que >> tener los modelos con managed = False (cómo los genera inspectdb) ya estaba >> bien. >> >> Con este sistema, y aunque el managed = False, django genera entradas en >> la tabla django_migrations para legacy (pués está instalada) aunque no >> genera tablas (el comando sqlmigrate sale con SQL vacío), cosa que está >> bien porqué están en otra BD. >> >> El problema que tengo ahora es que quiero empezar a gestionar los modelos >> de legacy des de Django. Esto supone cambiar los managed = False por >> managed = True y a partir de ahí cambiar los modelos. Por ejemplo, añadir >> una columna a una tabla. >> >> A priori esto genera una migración de cambio de metadatos de managed = >> False a managed = True y después una migración normal que añade la columna >> al schema. >> >> Para gestionar a qué BD pertenecen las tablas tengo un custom database >> router cómo este: >> >> class LegacyRouter: >> route_app_labels = {'legacy',} >> legacy_database = 'legacy' >> >> def db_for_read(self, model, **hints): >> if model._meta.app_label in self.route_app_labels: >> return self.legacy_database >> return None >> >> def db_for_write(self, model, **hints): >> if model._meta.app_label in self.route_app_labels: >> return self.legacy_database >> return None >> >> def allow_relation(self, obj1, obj2, **hints): >> return None >> >> def allow_migrate(self, db, app_label, model_name=None, **hints): >> is_legacy_db = db == self.legacy_database >> is_legacy_app = app_label in self.route_app_labels >> if is_legacy_db: >> return is_legacy_app >> else: >> return not is_legacy_app >> >> De esta forma, si ejecuto las migraciones con >> >> python manage.py migrate >> >> se migran las tablas que no son de la BD legacy y no son de la aplicación >> legacy. Pero además se incluyen migraciones (con SQL vacío) de los modelos >> de legacy. >> >> De la misma forma, si migro los modelos de legacy con >> >> python manage.py migrate --database=legacy >> >> se migran los modelos de legacy, pero además, se añaden entradas para >> todas las migraciones de las otras aplicaciones instaladas (sin SQL, con lo >> que no se crean/modifican tablas que no tocan). >> >> En ambos casos, python manage.py showmigrations y python manage.py >> showmigrations --database=legacy muestran todas las aplicaciones. >> >> Creo que esto es comportamiento esperado, pero ¿hay forma de que no >> salgan los modelos en las bases de datos que no los necesitan? ¿Estoy >> haciendo algo mal? >> >> ¡Muchas gracias! >> >> - >> Pau >> >> Python..., what else? >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> > > > -- > Juan Ignacio Rodríguez de León > Móvil (Spain): 605 890514 (Add +34 for International calls) > Mobile (UK): 07898648972 (Replace first 0 with +44 for International > calls) > E-Mail: euriba...@gmail.com > http://www.pythoncanarias.es/ > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
[Python-es] migraciones con multiples bases de datos en django
Buenas, Tengo una duda sobre cómo maneja Django las migraciones con múltiples bases de datos.En mi caso tengo dos DATABASES en el settings DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'producto', }, 'legacy': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'legacy-schema', } } la DB default está manejada por django desde siempre y la legacy tiene modelos generados vía inspecdb en una django application que también se llama legacy. En un principio la BD legacy era de sólo lectura, con lo que tener los modelos con managed = False (cómo los genera inspectdb) ya estaba bien. Con este sistema, y aunque el managed = False, django genera entradas en la tabla django_migrations para legacy (pués está instalada) aunque no genera tablas (el comando sqlmigrate sale con SQL vacío), cosa que está bien porqué están en otra BD. El problema que tengo ahora es que quiero empezar a gestionar los modelos de legacy des de Django. Esto supone cambiar los managed = False por managed = True y a partir de ahí cambiar los modelos. Por ejemplo, añadir una columna a una tabla. A priori esto genera una migración de cambio de metadatos de managed = False a managed = True y después una migración normal que añade la columna al schema. Para gestionar a qué BD pertenecen las tablas tengo un custom database router cómo este: class LegacyRouter: route_app_labels = {'legacy',} legacy_database = 'legacy' def db_for_read(self, model, **hints): if model._meta.app_label in self.route_app_labels: return self.legacy_database return None def db_for_write(self, model, **hints): if model._meta.app_label in self.route_app_labels: return self.legacy_database return None def allow_relation(self, obj1, obj2, **hints): return None def allow_migrate(self, db, app_label, model_name=None, **hints): is_legacy_db = db == self.legacy_database is_legacy_app = app_label in self.route_app_labels if is_legacy_db: return is_legacy_app else: return not is_legacy_app De esta forma, si ejecuto las migraciones con python manage.py migrate se migran las tablas que no son de la BD legacy y no son de la aplicación legacy. Pero además se incluyen migraciones (con SQL vacío) de los modelos de legacy. De la misma forma, si migro los modelos de legacy con python manage.py migrate --database=legacy se migran los modelos de legacy, pero además, se añaden entradas para todas las migraciones de las otras aplicaciones instaladas (sin SQL, con lo que no se crean/modifican tablas que no tocan). En ambos casos, python manage.py showmigrations y python manage.py showmigrations --database=legacy muestran todas las aplicaciones. Creo que esto es comportamiento esperado, pero ¿hay forma de que no salgan los modelos en las bases de datos que no los necesitan? ¿Estoy haciendo algo mal? ¡Muchas gracias! - Pau Python..., what else? ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
[Python-es] librería para integrar django con ADFS y Azure AD
Buenas, ¿Alguna recomendación para integrar via oauth2 con ADFS o Azure AD una aplicación hecha en django? He encontrado [django-auth-adfs] y el más genérico [python-social-auth]. [django-auth-adffs] https://django-auth-adfs.readthedocs.io/en/latest/ [python-social-auth] https://python-social-auth.readthedocs.io/en/latest/ Saludos, - Pau Python..., what else? ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Programa para diseñar la base de datos
Buenas, Django adopta una aproximación en la que se define la capa de persistencia a partir de classes de python y luego el mismo framework genera, a partir de estas definiciones de classes, el schema de la base de datos . Django incluye también tooling para aplicarlo. Es más, el tooling está diseñado para que el modelo vaya evolucionando y a partir de él se puedan ir generando las nuevas tablas o se modifiquen las que ya existen e incluye soporte para añadir datos en caso necesario. Django llama a estos flujos migrations [1]. El flujo general es diseñar modelo de objetos -> crear migración -> aplicar migración. Los paquetes de terceros de django y los de aplicaciones de soporte (p.ej.: django.contrib.auth) usan también este sistema, así que si vas a usar django, lo suyo es aprender cómo funciona su propio ORM. El tutorial de django [2] explica esto paso a paso. [1] https://docs.djangoproject.com/en/2.2/topics/migrations/ [2] https://docs.djangoproject.com/en/2.2/intro/tutorial01/ Saludos, - Pau Python..., what else? On Fri, May 3, 2019 at 4:58 AM Gonzalo V wrote: > Hola amigos. > Alguien conoce algún programa para diseñar la base de datos antes de > comenzar un proyecto en django - python? > > Saludos, > Gonzalo > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Pregunta sobre error de sintaxis.
A mi tampoco me gusta constantes enteras. Entiendo que una constante es un valor (un objeto) que no varía. Un literal es la representación de un objeto como expresión. En el caso de un entero quizá no tenga tanta importancía, pero hay literales que no son constantes. - Pau Python..., what else? 2012/1/3 Chema Cortes pych...@gmail.com El día 3 de enero de 2012 10:38, Juan Luis Cano Rodríguez juanlu...@gmail.com escribió: No me disgusta. ¡Gracias! Creo que hay una Ley de Murphy que dice que todas las constantes de una expresión deben ser consideradas variables. Yo lo dejaría como Literal entero puesto que son conceptos diferentes. Por ejemplo la constante '-1' no es un literal entero. Está compuesto del literal entero '1' al que se le aplica el operador unario '-'. -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Cómo aprender desde cero
Si estás empezando, pero mirando a 3, lo que vigilaría es con el print[1], usalo como función, no como sentencia. [1] http://stackoverflow.com/questions/1053849/why-print-statement-is-not-pythonic - Pau Python..., what else? 2011/10/24 Chema Cortes pych...@gmail.com El día 24 de octubre de 2011 10:48, Carlos Agulló Calvo cm.agu...@gmail.com escribió: Me ha surgido una duda nueva, con esto de que ya existe pyhon 3 ¿empiezo con él o empiezo con python 2? La idea general es que todo lo que aprendas con una versión te va a servir para más adelante. Empieza con python2.7 y ya te irás dando cuenta de qué cosas evitar cuando veas la etiqueta deprecated en la documentación, generalmente porque hay un nuevo modo más simple. Si empiezas con python3, encontrarás mucho código antiguo que puede que no entiendas el motivo de porqué se complicó tanto el programador. -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] High-Resolution Mandelbrot in Obfuscated Python
Genial. :D - Pau Python..., what else? 2011/10/5 Oswaldo lis...@soft-com.es Un ejemplo de ofuscación, ascii art, y ademas funciona http://preshing.com/20110926/**high-resolution-mandelbrot-in-** obfuscated-pythonhttp://preshing.com/20110926/high-resolution-mandelbrot-in-obfuscated-python -- Oswaldo __**_ Python-es mailing list Python-es@python.org http://mail.python.org/**mailman/listinfo/python-eshttp://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.**com/http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Sitio Preguntas y Respuestas para Python en español
A mi también me funciona. Sólo tube que editar mi perfil y pedirle que me mandara los emails cuando alguien posteara una pregunta. No sé si funcionará todo, pero si quieres que probemos algo, nos lo pides y a ver qué podemos hacer. Gracias y saludos!, - Pau Python..., what else? ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Sitio Preguntas y Respuestas para Python en español
Buenas, a mi me parece también muy bien la iniciativa, porqué en teoría las respuestas correctas ascienden hasta la primera, pero en según qué preguntas, aquí en la lista uno daría su opinión, y allí se autocensura, por ser opinión y no respuesta. Creo que se gana mucho, pero se pierde esta parte más social. Y, quizá, sea un sentimental, ya son muchos años leyendo/escribiendo aquí. :) Pero me parece cojonudo, vamos. Ya estoy allí. Saludos, - Pau Python..., what else? ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Sitio Preguntas y Respuestas para Python en español
http://python.majibu.org/ - Pau Python..., what else? 2011/2/4 Jorge Gant erjo...@gmail.com Parece una choreara y quedaré mal pero acabo de darme de alta en la lista y me perdí el enlace de la página de joe. Podéis ponerlo de nuevo? Gracias El 04/02/2011, a las 15:03, Chema Alonso fe...@nimiux.org escribió: On Thu, Feb 03, 2011 at 10:19:16PM +0100, joe di castro wrote: Había un problema con recaptcha, debería estar solucionado... El problema más tonto del mundo... Había dado de alta el dominio en recaptcha como .com en vez de .org Siento las molestias joe El jue, 03-02-2011 a las 17:22 +0100, Jose . escribió: Bueno, ya estoy en ello... a ver si al final se animáis a usarlo... ... Saludos joe di castro ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ Me he registrado en el sitio sin problemas, todo ha funcionado correctamente. Enhorabuena y muchas gracias por tu iniciativa y por tu trabajo. Un cordial saludo. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] ¿ __setattr__() no se invoca para reescribir un par (key,value) en un diccionario dentro de una clase?
Yo diría que es porqué estás haciendo un get de d, y ya cuando lo tienes haces una asignación al índice 'a' de ese objeto. - Pau Python..., what else? 2011/1/31 Jose Caballero jcaballero@gmail.com Hola, perdón por el subject, es un poco críptico. Intento explicarlo... Sea una clase C como la siguiente -- class C: def __init__(self): self.x = 0 self.d = {'a':'A','b':'B'} def __setattr__(self, var, value): print 'invoking __setattr__ ', var, value self.__dict__[var] = value -- Si ahora escribimos un código como obj = C() Se genera el siguiente output invoking __setattr__ x 0 invoking __setattr__ d {'a': 'A', 'b': 'B'} Que corresponde a las dos asignaciones que aparecen en el __init__() Perfecto. -- Si además hacemos algo como obj.x = 1 obtenemos una nueva línea en el output invoking __setattr__ x 1 -- Sin embargo no veo una línea similar si ahora escribo obj.d['a']='AA' ¿Por qué? ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] ¿ __setattr__() no se invoca para reescribir un par (key,value) en un diccionario dentro de una clase?
Eso mismo quería decir yo. Si en lugar de eso haces un set, obj.d = hola, volverá a pasar por el setter. Quizá esto http://users.rcn.com/python/download/Descriptor.htm te resulte interesante. También recuerdo que había una presentación de alguien, en texto plano, sobre metaclasses y descriptores, pero no lo encuentro. - Pau Python..., what else? 2011/1/31 Daniel Garcia d...@danigm.net On Mon, Jan 31, 2011 at 04:25:51PM -0500, Jose Caballero wrote: Hola, perdón por el subject, es un poco críptico. Intento explicarlo... Sea una clase C como la siguiente -- class C: def __init__(self): self.x = 0 self.d = {'a':'A','b':'B'} def __setattr__(self, var, value): print 'invoking __setattr__ ', var, value self.__dict__[var] = value -- Si ahora escribimos un código como obj = C() Se genera el siguiente output invoking __setattr__ x 0 invoking __setattr__ d {'a': 'A', 'b': 'B'} Que corresponde a las dos asignaciones que aparecen en el __init__() Perfecto. -- Si además hacemos algo como obj.x = 1 obtenemos una nueva línea en el output invoking __setattr__ x 1 -- Sin embargo no veo una línea similar si ahora escribo obj.d['a']='AA' ¿Por qué? Al hacer obj.d['a'] = 'AA' no se está llamando al setattr porque no estás añadiendo un atributo al objeto, sino un elemento al diccionario d. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] dudas con regexp
El if será false siempre porque comparas un string con un match object. Entiendo que la regex está bien, cambia el if: if re.match(r'\[\d+\%\]', lines): - Pau Python..., what else? 2011/1/26 Tony Peña emperor...@gmail.com hola por aqui de nuevo ahora con las dudas para numeros en expresiones regulares result que quisiera coger los numeros que estan dentro de un fichero que parseo en un formato [0%] . . . [25%] . . . [100%] y el codigo para probar me salta el print no coincido con el patron para que funciones, lo probe tambien con re.search y tampoco for line in open(stdout, 'r').xreadlines(): lines = line.strip('\r\n') if lines == re.match(r'\[\d+\%\]', lines): print lines else: pass gracias por adelantado Tony ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Ejercicio Bolsas de caramelos
Nos cuesta un poco entender la pregunta así formulada. Aunque sea sobre caramelos, la pregunta nos la tienes que dar un poco masticada. Porqué sino la respuesta podría ser difícil de digerir: class Caramelo(object): _count = {} def __new__(cls): if cls in Caramelo._count: Caramelo._count[cls] += 1 else: Caramelo._count[cls] = 1 return object.__new__(cls) @classmethod def count(cls): if cls in Caramelo._count: return Caramelo._count[cls] else: return 0 def __mul__(self, other): Caramelo._count[self.__class__] += other - 1 return self def __rmul__(self, other): return self.__mul__(other) def __lmul__(self, other): return self.__mul__(other) class RegalizRojo(Caramelo): pass class RegalizNegro(Caramelo): pass bolsa_a = [RegalizRojo(), RegalizRojo(), 2 * RegalizNegro()] bolsa_b = [4 * RegalizRojo(), RegalizNegro()] print RegalizRojo.count(), RegalizNegro.count() - Pau Python..., what else? 2011/1/13 lasizoillo lasizoi...@gmail.com El día 13 de enero de 2011 16:57, pixu kideak pixukid...@gmail.com escribió: Bueno pues para resolver el problema había pensado lo siguiente: Contar en memoria con todos los datos ( todas las bolsas existentes y éstas con los caramelos que contienen y sus cantidades ) Recorrer secuencialmente todas las bolsas viendo si tienen el caramelo que me interesa. En caso afirmativo contabilizar esa cantidad en el contador y así hasta recorrer todas las bolsas. Simplemente quería saber si existía alguna forma divina pero viendo que las Bolsas no guardan ninguna lógica en su composición; creo que toca recorrerlas todas viendo si contienen el caramelo o no :-) Saludos y gracias ;-) Vale, ahora entiendo el problema ;-) Si que hay solución y por supuesto no es nada divina. En algunos casos será mejor y en otros peor. Puedes mantener una especie de inventario de todos los caramelos. Bastaría con un diccionario en el que la clave es el caramelo y el valor el número de unidades en las bolsas registradas. Ese dato se puede ir llenando cada vez que registras una bolsa de caramelo. Pero también deberías actualizarlo al eliminar bolsas de caramelos. Por lo cual, estas haciendo más trabajo cada vez que dás de alta/baja una bolsa de caramelos y los contadores de cada tipo de caramelo ocupan espacio (no creo que importe mucho, pero hay que ser precisos). La ventaja es que se podrían hacer las consultas de los caramelos en O(1). Saludos: Javi 2011/1/13 lasizoillo lasizoi...@gmail.com El día 13 de enero de 2011 13:38, pixu kideak pixukid...@gmail.com escribió: Me han planteado un problemilla para realizarlo con Python pero no tengo muy claro por dónde atacar para resolverlo de manera eficiente. Sería un buen punto de partida la forma ineficiente por dos motivos: * El primero porque muestras que te has esforzado en intentarlo y tienes afán de superación en vez de más cara que espalda como muestran algunos que quieren que les hagan los deberes. El problema es el siguiente: Tengo distintas bolsas de caramelos, cada bolsa digamos que tiene un nombre; (BolsaA, BolsaB ... )y cada bolsa se compone de caramelos diferentes (RegalizRojo, RegalizNegro, Chicle,Tiburón ...). El tipo de caramelo puede estar tanto en un modelo de bolsa cómo en otra Lo que deseo realizar es, que el usuario pueda introducir cualquier tipo de caramelo y le muestre todas las unidades que se necesitan de ese tipo. * El segundo porque la redacción en lenguaje natural no compila en nuestras mentes. Seguramente un código ineficiente nos ayudaría a comprender el enunciado del problema. Unos tests o casos de prueba serían maravillosos. Ahora mismo las unidades que responden a la gran pregunta, creo que son 42. Lo que no se es cual es la gran pregunta de la vida, el universo y todo lo demás (incluyendo este problema ;-) Saludos: Javi ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Felices fiestas a todos los pythónicos
for i in range(10): print ' ' * (10 - i), 'A' * i * 2 ... - Pau Python..., what else? 2010/12/23 Jhonlier Suarez Molina jhonlier12...@hlg.jovenclub.cu Muchas felicidades a los de la lista por todas estas fechas que vienen. Qué Python siga popularizándose! Mi abrazo desde Cuba Jhonlier __ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5726 (20101222) __ ESET NOD32 Antivirus ha comprobado este mensaje. http://www.eset.com ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Estadísticas Web
2010/12/16 Antonio Óscar Balmaseda antonioost...@gmail.com Hola a todos, ¿alguien sabe de algún manual o website donde encontrar información acerca de cómo escribir estadísticas web en python (para django)? Por más que googleo, no doy con ninguna solución sencilla. ¿Qué tipo de estadísticas? ¿Qué necesitas, algo para hacer los cálculos?, ¿algo para mostrarlos en gráficas?, ¿una herramienta para hacer un crawler? - Pau Python..., what else? ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Estadísticas Web
Pues necesito calcular Unique Monthly Visitors y por día, los enlaces más visitados, la hora local de los visitantes... Para las gráficas suelo usar el Rrdtool, que hasta ahora me ha funcionado muy bien :) Estoy tonto, para django. Pássate por https://groups.google.com/group/django-es?hl=es. - Pau Python..., what else? ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Insertar y obtener datos en una tabla al mismo tiempo
Transactions? [1] [1] http://www.postgresql.org/docs/8.3/static/tutorial-transactions.html - Pau Python..., what else? 2010/12/9 (p...@vel) pdlo...@uci.cu Tal vez no sea un problema para la lista de python 100%, pero como deben haber tantos desarrolladores profesionales aqui tal vez hayan chocado con el siguiente problema. Tengo una tabla en postgres puede ser en cualquier SGBD Ahora, al insertar un nuevo record me hace falta el id del record insertado, pero el problema es que si hago una funcion para que me devuelva el ultimo id insertado tengo el problema de que otro usuario haya insertado despues que yo, y entonces yo cojo un id que no es el que yo inserte. Alguna idea de como se pueda resolver este problema ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] fichero y linea en blanco
Buenas, no será que le falta una coma al print? f = open('c:/py/test.txt') for line in f.readlines(): ... if len(line) 1: ... print line, ... linea uno linea dos linea tres, siguiente en blanco linea cinco liniea final - Pau Python..., what else? 2010/12/7 Jhonatan Sneider Salguero Villa sney2...@gmail.com El 7 de diciembre de 2010 09:43, (p...@vel) pdlo...@uci.cu escribió: Tengo el siguiente problema, estoy leyendo un fichero pero quiero que al leer una linea en blanco no haga nada, estaba probando el codigo de abajo pero me imprime la linea en blanco cada vez que la encuentra f = open('/home/pavel/Escritorio/char/file.txt') for line in f.readlines(): if len(line)==1: # if line=='\n' continue else: print line[0]+line[1]+line[2]+line[3]+line[4]+line[5]+line[6]+line[7]+ +line[24]+line[32] f.close() ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ el problema es que una linea en blanco puede estar llena con espacios y por lo tanto medir mas de 1, prueba usar el método strip sin argumentos para eliminar todos los espacios de la linea, si solo contiene espacios en blanco la expresión se evaluara como falsa: if not line.strip(): continue ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] fichero y linea en blanco
Perdón, se me ha ido la olla. :) Hazle caso a Johnatan. El condicional funciona porqué un empty sring es False en python. Si quieres sacarles el newline y hacerlo todo de una tirada: f = open('c:/py/test.txt') for line in map(lambda x: x.strip(), f.readlines()): ... if len(line) 0: ... print line ... linea uno linea dos linea tres, siguiente en blanco linea cinco liniea final - Pau Python..., what else? 2010/12/7 Pau Cervera pau.cerv...@gmail.com Buenas, no será que le falta una coma al print? f = open('c:/py/test.txt') for line in f.readlines(): ... if len(line) 1: ... print line, ... linea uno linea dos linea tres, siguiente en blanco linea cinco liniea final - Pau Python..., what else? 2010/12/7 Jhonatan Sneider Salguero Villa sney2...@gmail.com El 7 de diciembre de 2010 09:43, (p...@vel) pdlo...@uci.cu escribió: Tengo el siguiente problema, estoy leyendo un fichero pero quiero que al leer una linea en blanco no haga nada, estaba probando el codigo de abajo pero me imprime la linea en blanco cada vez que la encuentra f = open('/home/pavel/Escritorio/char/file.txt') for line in f.readlines(): if len(line)==1: # if line=='\n' continue else: print line[0]+line[1]+line[2]+line[3]+line[4]+line[5]+line[6]+line[7]+ +line[24]+line[32] f.close() ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ el problema es que una linea en blanco puede estar llena con espacios y por lo tanto medir mas de 1, prueba usar el método strip sin argumentos para eliminar todos los espacios de la linea, si solo contiene espacios en blanco la expresión se evaluara como falsa: if not line.strip(): continue ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Contar en lista
Bueno, lo ortodoxo sería def length(lista): ... if lista[1:] == lista: return 0 ... else: return 1 + length(lista[1:]) - Pau Python..., what else? 2010/11/11 lasizoillo lasizoi...@gmail.com El día 11 de noviembre de 2010 15:39, lopz lowlife...@gmail.com escribió: Yo diría que preguntar está bien, aunque esta pregunte debería tener una respuesta hasta en el peor libro, manual, etc sobre python (eso quiere decir que ni eso está leyento) Ahora.. lo que si no debería haber es más de 4, 5 (exagerando) respuestas con lo mismo, ya que el que responde luego de que le hayan respondido con lo mismo no tiene mucho sentido.. más aún sabiendo y leyendo que estás repitiendo lo mismo. Lo ideal sería responder con otras formas de saber la longitud de una list en python.. como yo no sé otra forma.. Como gastar la broma de usar PyObject_Length a través de ctypes? Seguramente se pueda hacer una barrabasada de esas y sea más ludico-festivo y didáctico que responder obviedades. Luego igual pruebo ;-) Saludos: Javi ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] (sin asunto)
¿? - Pau Python..., what else? On Mon, Apr 19, 2010 at 9:09 PM, sergio villegas echeverria sergiovillegasechever...@yahoo.com wrote: what is my password in mail python? ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Consejo para aprender a programar
Yo os habéis dejado una de importante: lee la lista! :) No, ahora en serio: algunos hemos aprendido muchas cosas de discusiones de esta lista, aunque no fueran respuestas a nuestras preguntas. Es un gran recurso. También puedes subscribirte a la lista oficial e ir siguiendo los hilos que te interesen, de la misma forma que harías con un planet. - Pau Python..., what else? 2010/4/8 Medardo Rodriguez (Merchise Group) med@gmail.com On 4/7/10, Angel Giovanni Cortes Solorzano giovanni@gmail.com wrote: Hola a todos, esta es la primera vez que me inscribo a una lista de correo y que escribo a una. Mi consulta es la siguiente, más que consulta pido un consejo. Programar puede ir desde un hobby hasta una carrera universitaria compleja; todo depende de lo que quieras. También es soporte de otras profesiones, creo que varias carreras deben saber un poco de programación. Si es un hobby para ti, lo que tienes que hacer es revisar mucho código hecho por otros del nivel hasta donde quieras llegar, te recomiendo compartir todo lo que hagas para que te los demás lo vean y te vayan corrigiendo el camino (programa para Software Libre). Si te vas a lanzar como profesional, no te queda más remedio que estudiar mucho, ya sea en una escuela o por tu cuenta. En este caso hay autores que no te puedes perder: Donald Knuth, Grady Booch, Bertrand Meyer, Barbara Liskov, ... y muchos etcéteras. Tienes que aprender teorías de muchas cosas: algoritmos, bases de datos, compiladores, lenguajes de programación, ... muchos paradigmas: Programación Orientada a Objetos, Programación Funcional, Programación Manipulada por Eventos, Teoría de Tipos (o contratos, o invariantes, o restricciones), ... Muchos se aprenden un lenguaje como el Python, pero no saben definir el concepto de clase, mucho menos el de metaclase o mixin, ... casi nunca llegan a saber lo que es una clausura. Razonar bien es lo más importante; defino *Programación* como la traducción del razonamiento humano a un modelo que puede ser ejecutado por una máquina. Saludos ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] HTMLgen + extjs + python
Una primera búsqueda en google me apunta a este ejemplo de como integrar ExtJS con django: http://www.extjs.com/learn/Tutorial:Using_Django_Poll_Tutorial_with_Ext Pero entiendo que no agregas el framework ExtJS a Python, no creas páginas des de Python y no haces peticiones a los archivos. - Pau Python..., what else? 2010/3/20 Manuel A. Estevez Fernandez stvz...@gmail.com Buen día Alguien tiene documentación o conoce documentación al respecto para crear las páginas desde python agregarle el frame work de extjs, y desde este hacerle peticiones a los archivos de python Saludos -- Atentamente ISC. Manuel Alejandro Estevez Fernandez ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/