Skip to main content

Connecteur SQL via HTTP & Outils SQL

Project description

# FluoSQL
Outil pour le SQL

Il faut savoir utiliser le SQL avant de se simplifier la vie.

Creez une base de donnée pour tester "Exemples" et importez le fichier sql dans le dossier exemples.

Auteur: Cyril Coelho

# Pas besoin de paniquer ceci va vous aider a comprendre comment ça marche
Les dependances sont locale a python
Après il est possible qu'il est necessaire d'installer: httplib, urllib
Installez le avec pip:
<pre><code>
pip install FluoSQL
</code></pre>

Si ça ne marche pas:
<pre><code>
git clone https://gitlab.com/LaGvidilo/FluoSQL.git
cd FluoSQL
sudo pip install -e .
</code></pre>
A noter que vous pouvez aussi utiliser "setup.py install"

Ensuite voilà comment utiliser cette librairie:

Juste se connecter a une base de donnée directement avec le connecteur par défault:
<pre><code>
from FluoSQL import FluoSQL as FSQL #import FluoSQL and alias this
SQL_base = FSQL(IP="192.168.1.20",user="admin",password="1234",base="Exemple")
</code></pre>

Et ensuite faire une requête:
<pre><code>
print SQL_base.make_simple_request(type_request = "select", selected_row="site,visit", selected_from="stats", WHERE={'visit>':0})
</code></pre>

Ensuite voilà un client http FluoSQL:
<pre><code>
IP = "localhost"#IP of http server
username = "name@mail.com"#username (in Auth Table of database "Exemple")
password = "1234"#password (in Auth Table of database "Exemple")
RESULT ="NO RETURN"#Start message

import FluoSQL#Import FluoSQL
try:
SQL = FluoSQL.FluoSQL(IP=IP, user=username, password=password,http=True)#connection


#utilisation
#Set request
SQL.make_simple_request(type_request = "select", selected_row="site,visit", selected_from="stats", WHERE={'visit>':0}, set_current=True,mode=-1)
RESULT = SQL.send_request()#And send request & commit
except:
print "error: connector"#if error of connector

print "RESULT:"
print RESULT
</code></pre>

Et voilà son serveur:
<pre><code>
#coding: utf-8
from FluoSQL import FluoSQL as FSQL
SQL_base = FSQL(IP="192.168.1.21",user="admin",password="1234",base="Exemple")#For make request simple
SQL_common = FSQL(IP="192.168.1.21",user="admin",password="1234",base="Exemple")#For send request


#SERVEUR FluoSQL======================================START
from bottle import route, run, template, get, post, request, response, static_file, redirect

@post('/connect')
def connect_fluo():
mode = request.POST['@mode']
username = request.POST['@username']
passhash = request.POST['@hash']
if mode == "connect":
print "\n/connect"
SQL_base.make_simple_request(type_request = "select", selected_row="email, HASH, blocked", selected_from="Auth", WHERE={'email':username,'HASH':passhash}, set_current=True)
print "REQUEST:",SQL_base.__REQUEST__
RES = SQL_common.set_request(SQL_base.__REQUEST__,1)
print "RESULT:",RES
return str(RES)
else:
return None

@post('/req')
def request_fluo():
username = request.POST['@username']
passhash = request.POST['@hash']
securelogin=False
SQL_base.make_simple_request(type_request = "select", selected_row="email, HASH, blocked", selected_from="Auth", WHERE={'email':username,'HASH':passhash}, set_current=True)
print "SQL_base.__REQUEST__",SQL_base.__REQUEST__,'\n'
RES = SQL_common.set_request(SQL_base.__REQUEST__,1)
try:
u,h,b = RES['email'],RES['HASH'],RES['blocked']
if b==0:
if u == username:
if h == passhash:
securelogin=True
except:
print "Pas connecté"

if (securelogin==False):
return "<AUTH_ERROR>"
else:
Req = str(request.POST['@req'])+';'
print "\n/req"
print "(",Req,")"
try:
print "REQUEST:",Req
print "RESULT:",str(SQL_common.set_request(Req))
return str(SQL_common.set_request(Req))
except:
return "<SQL_ERROR>"

run(host='0.0.0.0', port=8000)
#SERVEUR FluoSQL======================================END
</code></pre>

Je vous conseil de pas toucher au code serveur si vous voulez que ça marche.
Pour le serveur il y a une dépendance: bottle.
Installez le avant de tester:
<pre><code>
pip install bottle
</code></pre>

Voila c'est pas plus compliqué


Ensuite en détail:
Vous pouvez utiliser l'autoloader html & template de FluoSQL:
<pre><code>
from FluoSQL import autoload
autoload = autoload()
pages = autoload.load_html()
tpl = autoload.load_tpl()
</code></pre>

Sécuriser un mot de passe:
<pre><code>
from FluoSQL import hash_
print hash_("test")
</code></pre>

Charger un site en lecture seule:
<pre><code>
from FluoSQL import Fluo
a = Fluo()
a.make_simple_get()
a.execute()
</code></pre>


Se connecter avec le connecteur par défaut:
<pre><code>
From FluoSQL import FluoSQL
SQL = FluoSQL(IP="192.168.1.21",user="phpmyadmin",password="6345",base="Exemple",http=False)
</code></pre>

Se connecter avec le connecteur FluoSQL(http):
<pre><code>
From FluoSQL import FluoSQL
SQL = FluoSQL(IP="192.168.1.21",user="phpmyadmin",password="6345",base="Exemple",http=True)
</code></pre>

Se deconnecter:
<pre><code>
SQL.db_close()
</code></pre>


Un simple select:
id>2
<pre><code>
SQL.make_simple_request(type_request = "select", selected_row="*", values="", selected_from="Auth", WHERE={'id>':2}, mode=0, set_current=False, inc=False)
</code></pre>
id = 1
<pre><code>
SQL.make_simple_request(type_request = "select", selected_row="*", values="", selected_from="Auth", WHERE={'id':1}, mode=0, set_current=False, inc=False)
</code></pre>
Mode : 0 ----> fetchall (dict)
Mode : 1 ----> fetchone (dict)
Mode : -1 ---> fetch element


Retourner la reponse:
<pre><code>
SQL.get_reponse(mode=1)
</code></pre>
Mode : 0 ----> fetchall (dict)
Mode : 1 ----> fetchone (dict)
Mode : -1 ---> fetch element

Pour fabriquer une requete custom:
<pre><code>
SQL.set_request(request,mode=0)
</code></pre>
Mode : 0 ----> fetchall (dict)
Mode : 1 ----> fetchone (dict)
Mode : -1 ---> fetch element


Pour envoyer une requete:
<pre><code>
SQL.send_request()
</code></pre>


Voilà c'est tout, plutôt puissant comme outils hien?
Je l'ai créé a cause de nombreux problème pour faire des applications connectees propres et stable avec le framework kivy.

Fonctionne sous kivy et android! ;)


A venir: un exemple de serveur SQLITE3(SQLITE3 n'a pas de connecteur online mais je compte en fabriquer un)

Plus d'exemple si besoin.

Contactez moi si vous avez des questions intélligentes.

Project details


Release history Release notifications

This version
History Node

1.0.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
FluoSQL-1.0.0.tar.gz (3.2 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page