2016-08-06 1 views
0

Je construis une application pour Android et j'ai besoin d'interagir avec la base de données Mysql. J'ai un problème à configurer l'accès à partir d'Android, mais pas avec mon installation Linux.Kivy SQLalchemy et Android, aucun module nommé MySQLdb

J'ai avec succès importé la recette de SQLAlchemy sur mon Android APK mais quand je lance le creux de l'application logcat i voir l'erreur:

NO module named MySQLdb 

donc j'ai essayé d'ajouter à buildozer aussi la recette de MySQLdb et il dit :

No matching distribution found for MySQLdb 

Ceci est la partie du code en invoquant une partie mysql:

import sqlalchemy 
from sqlalchemy import create_engine 
from sqlalchemy import MetaData, Column, Table, ForeignKey 
from sqlalchemy import Integer, String 
from sqlalchemy.sql import select 

def check_sql_list(_id, string): 
    cur = engine.connect() 
    res = cur.execute("SELECT * FROM tbl_user") 
    for x in res.fetchall(): 
     if x[_id] == string: return True 
    cur.close() 

def create_user(name,e_mail,psw): 
    if check_sql_list(1,name): 
     print 'Select another username.' 
    elif check_sql_list(2,e_mail): 
     print 'Your E-Mail have already an account.' 
    else: 
     connection = engine.raw_connection() 
     try: 
      cursor = connection.cursor() 
      cursor.callproc("sp_createUser",[name, e_mail, psw]) 
      results = list(cursor.fetchall()) 
      for a in cursor.fetchall(): 
       print a 
      print results 
      cursor.close 
      connection.commit() 
     finally: 
      connection.close() 
      print 'Account registered succesfully.' 

ip = 'localhost' 
databs = 'mydb' 
user = 'guest' 
psw = 'password' 
porta = '3306' 

engine = create_engine('mysql://' + user + ':' + psw + '@' + ip + ':' + porta + '/' + databs) 
create_user('user001','[email protected]','password') 

Comment puis-je me connecter à ma base de données sans avoir besoin de la recette MySQLdb? Ou où puis-je trouver cette recette?

Répondre

0

Je réponds à ma propre question en espérant que quelqu'un la trouvera utile.

-je savoir comment le résoudre, utiliser comme un composeur mysql + mysqlconnector comme:

engine = create_engine('mysql+mysqlconnector://user00:[email protected]:3306/database') 

et ajoute les exigences de recette dans le buildozer.spec:

requirements = kivy,sqlalchemy,mysql_connector 
0

kivy -m pip install mysql-connector

que :

import mysql.connector

travail pour moi :)