Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mensajes - $francisco

Páginas: [1] 2 3 ... 10
1
Python / Creación de aplicaciones android con python, kivymd
« en: Octubre 22, 2020, 06:30:02 pm »
Muy buenas a todos, hace ya bastante no comparto nada, pero creo que esto realmente merece la pena.

¿Que es Kivy?

kivy es una librería de python sdl2 que fue desarrollado en C para la creación de videojuegos en 2D.

Los desarrolladores de Kivy hicieron un gran trabajo e hicieron un framework en sdl2 para crear aplicaciones multiplataforma, lo interesante no es sólo esto si no que puede ejecutarse en dispositivos móviles y tabletas tanto para android como para ios.

Kivy esta mas orientado para aplicaciones tipo touch, como dispositivos móviles o pantallas táctiles, por este motivo a vuelto a revivir la librería KivyMD,.

KivyMD se basa en Kivy, lo que han creador es un conjunto de Widgets basados en material design para que las aplicaciones tengan mejor aspecto al ejecutarse sobre todo en dispositivos móviles.

Dicho todo esto quiero compartir unos videos  recientes subidos a KivyMD español para ver si esto coge fuerza y podemos dar un vuelco a crear apps para dispositivos móviles con python.


2
Python / Creacion de aplicaciones android con python kivymd
« en: Noviembre 14, 2019, 09:54:31 pm »
Muy buenas compañeros, quiero compartir algo a lo que le estoy dedicando un poquito de tiempo y que a los pythoneros seguro les va a gustar.

Vamos a usar kivy, en mas concreto kivymd que es una extensión o librería de kivy, decir que kivy esta creado con sdl2, sdl2 es un conjunto de bibliotecas creadas en C por un desarrollador de videojuegos y que proporciona funciones básicas para crear operaciones de dibujo en 2d.

Ahora con kivymd (kivy material desing) proporciona un estilo que sigue el estándar de diseño que se puso en el sdk 21 o api 5 de esta manera parece que es una aplicacion android real, no solo eso, también tenemos pyjnius que nos proporciona acceder a java desde python y de esta manera podemos acceder al sdk nativo usando pyjnius, también tenemos buildozer que es una herramienta que nos ayuda a compilar a apk o a ios.

Creamos nuestro archivo main.py que sera el punto de entrada de nuestra aplicación.

Código: (python) [Seleccionar]
from kivy.app import App
from kivymd.theming import ThemeManager


class Main(App):
    theme_cls = ThemeManager()

    def open_menu(self, widget):
        self.root.toggle_nav_drawer()

    def imprimir(self, texto):
        print(texto)

Main().run()

Este es el punto de entrada y theme_cls es lo que va a buscar cuando se genera la instancia, es lo que proporciona kivymd y es donde se comienza a crear la magia.

Ahora vamos a crear el main.kv

Código: (text) [Seleccionar]
NavigationLayout:
    MDNavigationDrawer:
        drawer_logo: "menu.png"
        NavigationDrawerIconButton:
            icon: "home"
            text: "Inicio"
            on_release: screen_manager.current = "screen1"

        NavigationDrawerIconButton:
            icon: "lock"
            text: "Pagina 2"
            on_release: screen_manager.current = "screen2"

    BoxLayout:
        orientation: "vertical"
        MDToolbar:
            title: "App"
            md_bg_color: app.theme_cls.primary_color
            left_action_items: [["menu", app.open_menu]]
        ScreenManager:
            id: screen_manager
            Screen:
                name: "screen1"
                FloatLayout:
                    MDLabel:
                        text: "Screen 1"
                        size_hint: (0.5, 0.1)
                        pos_hint: {"center_x": 0.5, "center_y": 0.9}
                        halign: "center"

                    MDRoundFlatButton:
                        text: "Imprimir"
                        pos_hint: {"center_x": 0.5, "center_y": 0.8}
                        on_release: app.imprimir("Screen 1")

            Screen:
                name: "screen2"
                FloatLayout:
                    MDLabel:
                        text: "Screen 2"
                        size_hint: (0.5, 0.1)
                        pos_hint: {"center_x": 0.5, "center_y": 0.9}
                        halign: "center"

                    MDRoundFlatButton:
                        text: "Imprimir"
                        pos_hint: {"center_x": 0.5, "center_y": 0.8}
                        on_release: app.imprimir("Screen 2")

El archivo main.kv es el archivo que carga por defecto al crear la instancia de nuestra aplicación, si ejecutamos esto veremos nuestra aplicación funcionando.

https://github.com/FranciscoCarbonell/kivymd-example






3
Dudas y pedidos generales / usb sistema de archivos: desconocido
« en: Abril 04, 2019, 04:56:40 pm »
que tal a todos, tengo 2 usbs nuevos PNY 64g y en los dos me sale lo mismo, sistema de archivos desconocido, ya he estado viendo que podría estar en formato raw pero no es el caso lo he mirado en el administrador de discos de windows y me sale vacio, como si fuera un lector de cd, con linux ni si quiera lo reconoce, gparter no lo reconoce como almacenamiento usb, con lsusb me sale pero no es reconocido, si intento formatearlo desde windows en formatear me salta un error diciendo que no hay ningun disco en la unidad y el espacio disponible es de 0MB lo unico que puedo deducir es que directamente no venga bien de fabrica pero me parece extraño 2 de 2.

Gracias

4
Dudas y pedidos generales / Dudas sobre token usando JWT
« en: Abril 18, 2018, 09:59:58 am »
Muy buenas a todos, tengo unas dudas sobre como usar correctamente los token, comento un poco lo que estoy haciendo.

Tengo una url para autentificacion auth0 ejemplo /login/ donde se reciven ya sea por el header o parametros post el usuario y la contraseña, si este es correcto se genera un token de aceso y otro de refresco donde para refrescar tengo /refresh/ para actualizar el de acceso, en el token de acceso se guarda un id que es guardado en redis con un usuario y contraseña por ejemplo
Código: (python) [Seleccionar]
db.__setItem__(key,value) donde un caso real es
Código: (python) [Seleccionar]
db.__setItem__(id,{'username':'fran','password':'mi pass'})entonces creo una url /protect/ donde uso JWT para que no pueda ser accedida sin tener un token de acceso valido, si es valido el token se descodifica y obtiene el id, con este id se mira en redis para obtener el usuario y contraseña y no tener que volver a pedir las credenciales solamente en la autentificacion pero tengo una duda
¿si alguien obtiene mi token de acceso puede acceder a la url protegida? de ser asi ¿como puedo evitarlo?

5
Dudas y pedidos generales / Re:duda sobre python y def
« en: Marzo 19, 2018, 06:53:07 pm »
Para poder ayudarte muestra tu codigo

6
Dudas y pedidos generales / Ayuda con odoo
« en: Marzo 16, 2018, 06:28:24 pm »
Muy buenas a todos, estoy empezando con odoo, ya lo he instalado y probado la api odoo-rest, lo que veo es que me cuesta mucho aprender su funcionamiento y como poder crear un modulo realmente bueno debido a que poca gente programa en este framework, con esto quiero decir si algunos de los que estáis por aquí habéis usado odoo para poder empezar a usarlo, ya he empezado pero ya he tenido mi primer atasco, he creado un modulo y un nuevo usuario, el administrador puede ver el modulo creado pero el usuario creado no puede ver el modulo, con esto quiero decir que la vista creada no se visualiza en el menú desde este usuario y muchas mas dudas que no logro aclarar

7
Gracias me sirvio, pero ¿porque se obliga a usar contents y no funciona con el texto directamente?

hay otra cosa que no logre hacer esta que me acorde de que esta parent() pero no logro entender muy bien esto mi código quedo así
Código: (javascript) [Seleccionar]
$(document).ready(function(){
    $('.getter').on('click',function(){
        var html = $(this).html();
        var content = $(html).contents();
        $(content).each(function(index){
            if(index > 0 && index != 7){
                var id = $(this).parent().attr('id');
                var value = $(this).text();
                if(index == 6){
                 value = value.split('-').reverse().join('-');
                 console.log(value);
                }
                $('#setter #'+id).val(value);
            }
        });
    });
});

pero no entiendo por que esto no funciona
Código: (javascript) [Seleccionar]
var id = $(this).parent().attr('id');y estoy obligado a llamar a perent() si supuestamente estoy en el objeto de el tag que estoy iterando

8
Muy buenas, creo que se me escapa algo y no porque obtengo datos en blanco y nulos que no se el porque se muestran.

Código: (javascript) [Seleccionar]
$(document).ready(function(){
$('.getter').on('click',function(){
    var text = `<th>1</th>
                <th id="sport">Futbol</th>
                <th id="match">partido</th>
                <th id="bet">quien gana</th>
                <th id="mb">mb</th>
                <th id="mw">?</th>
                <th id="date">28-01-2018</th>
                <th id="dp">23-01-2018 15:49:06</th>
                <th id="_id">1</th>`;
    var object = $(text).find('th');
    var elements = object.prevObject;
    $(elements).each(function(){
        alert($(this).text());
    });
})

});

El resultado que esperaba es que pudiera obtener los valores de <th> pero por algun motivo obtengo 16 objetos cuando solo tendrian que ser 9 y el resto me los muestra en vacios ¿que es lo que pasa?
Otro detalle si cambio esta linea
Código: (javascript) [Seleccionar]
var object = $(text).find('a');No debería retornar nada ya que estoy intentando obtener solo los enlaces pero aun así obtiene el mismo resultado.
Gracias.

9
Dudas y pedidos generales / ¿Cuando usar socketio?
« en: Noviembre 23, 2017, 11:30:46 am »
Muy buenas a todos, tengo duda de cuando usar este tipo de conexión, se como funcina pero no se cuando es adecuado usar socketio, segun parece para creaer chats viene bien porque transmite datos bidireccional y eso viene bien porque se transmiten al instante pero no se para que usos es mas adecuado parece una tonteria pero tengo esa duda.

10
He logrado "soluciona" o mas bien podría decir que saber porque no puedo acceder desde mi red interna a mi pc con la ip publica, esto es porque mi router no tiene activado loopback para este router, pero eso no es problema porque usando un proxy soluciono el error.

Ahora el que me queda es saber porque solo me funciona con xamp solamente y no me funciona con nada mas, enciendo xamp, entro a mi ip publica y accede bien pero si pongo a la escucha flask no funciona y en otro puerto tampoco

11
Si,como se ve en la imagen el DMZ apunta a mi pc pero no conecta nada, solamente xamp y desde un proxy

12
Muy buenas compañeros, parece que estoy preguntando el tipico error de configuración de redirección de puertos pero no es asi, en mi caso es algo muy extraño que no logro solucionar desde hace ya tiempo, por ahora me servia porque mis pruebas eran solo con xamp pero ahora necesito mas puertos para mas pruebas, en mi caso cuando intendo acceder desde una pc o movil desde dentro de la red interna de mi casa a la ip externa me pasa lo siguiente


Como podeis ver, al acceder desde mi pc a mi ip externa accede directamente a mi router, esto no debería ser asi, debería acceder a mi pagina de xamp con los virtualhost configurados para acceder pagina, pero ahora pruebo desde un proxy y pasa lo siguiente


La pagina se ve correctamente y todo funciona bien pero eso no es lo mas curioso, si intento montar un servidor en python con flask en el mismo puerto

Código: (python) [Seleccionar]
from flask import Flask,Blueprint

from gevent.wsgi import WSGIServer
from views.uploads import uploads
from views.index import App,login_manager
from views.paypal import api
app = Flask(__name__)

login_manager.init_app(app)
app.register_blueprint(uploads)
app.register_blueprint(App)
app.register_blueprint(api)
app.config['UPLOADED_PHOTOS_DEST'] = 'static/images'

app.config.update(
    DEBUG=True,
    SECRET_KEY='secret_xxx',
    static_url_path='/static'
)

if __name__ == "__main__":
    http_server = WSGIServer(('', 80), app)
    http_server.serve_forever()
    #app.run()
    #app.run(debug=True,port=80)

Intento acceder desde el proxy y no me deja acceder, ni con flask ni creando un socket en otro puerto, lo he probado todo, he probado desactivando el firewall y poniendo mi pc como dmz para evitar mas problemas



El puerto 80 aunque no salga abierto deja parar conexiones y las demas no entiendo porque no pueden conectar y el motivo de este problema pero estoy probando todo lo que se me ocurre o no logro hacer ninguna conexión, he intentado abriendo mas puertos como el 6565, el 8080 y poniendo a escuchar en ese puerto pero nada... espero puedan ayudarme y gracias.

13
Hay muchas cosas que no tienen sentido
Código: (python) [Seleccionar]
if list_cr_file == list_cr_input:
            break
            print("Welcome %s!" % login_name)
            maincmd()
Después del break no se va a imprimir nada
¿Porque tanto cambio de variable? Mejor quedaría así
Código: (python) [Seleccionar]
login_name = input("login: ")

Donde tienes la función password no solo guardas el password si no también el user
Código: (python) [Seleccionar]
def saveUser():
    list_cr_file = "n1sendev,1234\n"
    file = open('boot_data.txt', 'w')
    file.write('\r%s' % list_cr_file)
    file.close()
Guarda los datos en texto plano y para comprobar si esta el usuario en el archivo de texto no hace falta que lo guardes simplemente comprueba que coincida
Código: (python) [Seleccionar]
file = open('boot_data.txt', 'r')
for ln in file.readlines():
    split = ln.split(',')
    user,passwd = split[0], split[1]
    print(user)
    print(passwd)
    if login_name == user:
        if login_pass == passwd:
            print("Welcome %s!" % login_name)
            maincmd()
        else:
            print('password invalid') 
    else:
        print('user invalid')
file.close()

14
Dudas y pedidos generales / Re:Python 3.x usar tkinter con classes
« en: Noviembre 14, 2017, 07:39:10 pm »

Código: (python) [Seleccionar]
import mtTkinter as Tkinter
import Image,ImageTk

IMAGE_LABEL = 'img.jpg'

class MainWindow(Tkinter.Tk):
 def __init__(self):
  Tkinter.Tk.__init__(self)
  self.geometry("400x400")
  lista = ("createImage","label")
  for i in lista:
   getattr(self,i)()

 def createImage(self):
  openImage = Image.open(IMAGE_LABEL)
  self.image = ImageTk.PhotoImage(openImage)

 def label(self):
  self.v = Tkinter.StringVar()
  self.v.set("0%")
  label_1 = Tkinter.Label(self,image=self.image)
  label_1.pack(fill=Tkinter.BOTH,expand=True)

  label_2 = Tkinter.Label(label_1,textvariable=self.v)
  label_2.pack(side="bottom")

window = MainWindow()
window.mainloop()
Yo te recomendaría que usaras mtTkinter que se usa igual que tkinter pero con la diferencia que no tendrás los problemas de congelación del widget al usar por ejemplo un progressbar o tareas que necesiten usar un hilo, pero mejor te recomendaría usar PyQt que es mas actualizada y conas documentación que incluye una gui que ahorra mucho trabajo

15
Dudas y pedidos generales / Paypal en modo produccion
« en: Noviembre 14, 2017, 10:47:27 am »
Muy buenas compañeros, estoy viendo la rest server api de paypal y estoy haciendo los test en modo sandbox, he creado una cuenta personal y otra business, la personal que es la que contiene el dinero ficticio y la business donde reciviré los pagos ficticios, todo funciona correctamente pero tengo una duda para ponerlo en modo producción, yo al crear estas cuentas la seccion de developer de paypal desde mi cuenta real y la cuenta business contiene el client_id y client_secret para trabajar desde el servidor pero yo lo que quiero es si lo pongo en modo producción que el dinero se ingrese en mi cuenta real de paypal pero en esta cuenta no tengo ningun client_id ni el client_secret necesarios para trabajar con esta api.

16
Dudas y pedidos generales / [python] flask en modo producción sin wsgi
« en: Septiembre 24, 2017, 05:43:21 pm »
Muy buenas de nuevo, estoy probando flask y me gustaría usarlo para algún proyecto pero quiero saber vuestra opinión respecto a usarlo con el servidor que monta flask porque en modo producción me dice que debo usar wsgi y en un servidor que lo soporte entonces quiero saber con vuestra experiencia si puedo usarlo en un vps  con el servidor que monta en modo desarrollo y que tipo de problemas podría tener ya que lo veo mucho mas como y que no se necesita de ninguna instalación de apache ni wsgi pero me preocupa que sea inseguro y porque.
Gracias

17
Muy buenas a todos de nuevo, me he recorrido google para ver si hay algun módulo o librería para poder crear redes virtuales como podría ser hamachi o game ranger para poder jugar con otras personas online pero sin tener que estar en la misma red LAN fisica, no se si esto se podría lograr con el módulo socket.
gracias.

18
Dudas y pedidos generales / Re:[python] Descodificar cualquier caracter
« en: Agosto 23, 2017, 11:01:12 am »
Gracias me sirvio, ya puedo imprimir cualquier caracter, la verdad es que estos módulos hacen no tener muchos dolores de cabeza

19
Dudas y pedidos generales / Re:[python] Descodificar cualquier caracter
« en: Agosto 22, 2017, 05:58:57 pm »
Ya lo intente todo aqui muestro el codigo original
Código: (python) [Seleccionar]
filename = video.filename.encode('cp1252')donde este no funciona y lo cambié a
Código: (python) [Seleccionar]
filename = video.filename.encode('utf8')que funciona pero me muestra otros simbolos que no son los originales y con
Código: (python) [Seleccionar]
filename = video.filename.encode('cp1252','replace')no funciona el script termina sin ninguna excepcion

20
Que tal compañeros, tengo un problema con los caracteres a la hora de descodificarlos, resulta que la cadena de texto la cojo de internet con pytube para descargar el video de youtube, el titulo es el problema, en la mayoria de los casos no pasa nada pero en otros me lanza el un error como este UnicodeEncodeError: 'charmap' codec can't encode character u'\u2666' in position 14: character maps to <undefined>
tubeturbo returned -1
para este problema estoy usando

Código: (python) [Seleccionar]
cadena.decode('cp1252')y funciona a excepción de algunos caracteres como por ejemplo con este titulo
Hardcore 2017 ♦ Dominator Festival 2017 ♦ Warm-Up Mix ♦ Festival Video ♦ Air Force Festival 2017
¿como puedo solucionar esto y que no me de ningun problema?


Páginas: [1] 2 3 ... 10