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


Download files

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

Source Distribution

FluoSQL-1.0.0.tar.gz (3.2 kB view details)

Uploaded Source

File details

Details for the file FluoSQL-1.0.0.tar.gz.

File metadata

  • Download URL: FluoSQL-1.0.0.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for FluoSQL-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6effb5de2ced7e6b543eaa985a018cc1ecb1658b467b403771cf4406594f265d
MD5 9d4de96c234b8374a54989eb1e951084
BLAKE2b-256 d7ac6fc8e7be39fed13896438fc1e6c229d07aecc90f2fd6a110334a92c0ee0d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page