Rsql
Project description
# Rsql
Чистые и быстрыее sql запросы для python. Если вы по какой то причине не хотите использовать ORM, то этот пакет создан для вас. Минимальный вес, интерфейс и весь SQL в ваших руках!
# Поддержка:
- MySQL 8
- SQLite 3
- Postgresql 10
Всего 3 шага для работы с пакетом:
- [Установка] соединения и настройка
- Запрос на все виды [изменения] Db.set( "INSERT INTO ...", (params))
- Запрос на все виды [получения] Db.get( "SELECT * FROM ....", (params))
> Пакет базируется на включенном в
> Python коннектор Sqlite
> Сторонних: Pymysql для Mysql и
> Psycopg для Postgresql
### Installation
Советуем использовать [Python](https://www.python.org/downloads/) v.3.6+
```sh
$ cd your project
$ pip install Rsql
```
### Mysql
```sh
$ from Rmysql import Rmysql
$ db = Rmysql('0.0.0.0', 'test', 'root', 'root', 3307)
$ db.set("INSERT INTO pet (name, owner, species, sex) VALUES(%s, %s, %s, %s)", ('Rex', 'Alex', 'dogger', 1))
$ print(db.get("SELECT name FROM pet"))
```
### Postgresql
```sh
$ from Rsqlite import Rsqlite
$ db = Rpostgres('0.0.0.0', 'test', 'root', 'root', 5432)
$ db = db.set("INSERT INTO users (id, name) VALUES(1, 'Alex')" )
$ db = db.set("INSERT INTO users (id, name) VALUES(%s, %s)", (2, 'Joan'))
$ print(db.get("SELECT * FROM users WHERE id > %s", ('1')))
```
> *всегда используйте %s в серверных базах данных как Mysql, Postgresql
>Параметры следует писать отдельно для избежения SQL инъекций
### SQlite
```sh
$ from Rsqlite import Rsqlite
--- необязательный параметр абсолютного пути для хранения базы---
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
$ db = Rsqlite('lend.db', path=dir_path+'/')
$ db.set('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(40), age INT)')
$ db.set("INSERT INTO users (name, age) VALUES(?, ?)", [('Alex', 22), ('Peter', 55)])
$ db.set("INSERT INTO users (name) VALUES(?)", [('Alex',)])
$ db.set("INSERT INTO users (name,age) VALUES('Joan', 30)", )
$ print(db.get("SELECT * FROM users WHERE age < 25"))
$ print(db.get("SELECT * FROM users WHERE age > ? AND name = ?", ('25', 'Joan') ))
```
License
----
MIT
Чистые и быстрыее sql запросы для python. Если вы по какой то причине не хотите использовать ORM, то этот пакет создан для вас. Минимальный вес, интерфейс и весь SQL в ваших руках!
# Поддержка:
- MySQL 8
- SQLite 3
- Postgresql 10
Всего 3 шага для работы с пакетом:
- [Установка] соединения и настройка
- Запрос на все виды [изменения] Db.set( "INSERT INTO ...", (params))
- Запрос на все виды [получения] Db.get( "SELECT * FROM ....", (params))
> Пакет базируется на включенном в
> Python коннектор Sqlite
> Сторонних: Pymysql для Mysql и
> Psycopg для Postgresql
### Installation
Советуем использовать [Python](https://www.python.org/downloads/) v.3.6+
```sh
$ cd your project
$ pip install Rsql
```
### Mysql
```sh
$ from Rmysql import Rmysql
$ db = Rmysql('0.0.0.0', 'test', 'root', 'root', 3307)
$ db.set("INSERT INTO pet (name, owner, species, sex) VALUES(%s, %s, %s, %s)", ('Rex', 'Alex', 'dogger', 1))
$ print(db.get("SELECT name FROM pet"))
```
### Postgresql
```sh
$ from Rsqlite import Rsqlite
$ db = Rpostgres('0.0.0.0', 'test', 'root', 'root', 5432)
$ db = db.set("INSERT INTO users (id, name) VALUES(1, 'Alex')" )
$ db = db.set("INSERT INTO users (id, name) VALUES(%s, %s)", (2, 'Joan'))
$ print(db.get("SELECT * FROM users WHERE id > %s", ('1')))
```
> *всегда используйте %s в серверных базах данных как Mysql, Postgresql
>Параметры следует писать отдельно для избежения SQL инъекций
### SQlite
```sh
$ from Rsqlite import Rsqlite
--- необязательный параметр абсолютного пути для хранения базы---
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
$ db = Rsqlite('lend.db', path=dir_path+'/')
$ db.set('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(40), age INT)')
$ db.set("INSERT INTO users (name, age) VALUES(?, ?)", [('Alex', 22), ('Peter', 55)])
$ db.set("INSERT INTO users (name) VALUES(?)", [('Alex',)])
$ db.set("INSERT INTO users (name,age) VALUES('Joan', 30)", )
$ print(db.get("SELECT * FROM users WHERE age < 25"))
$ print(db.get("SELECT * FROM users WHERE age > ? AND name = ?", ('25', 'Joan') ))
```
License
----
MIT
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
Rsql-1.0.tar.gz
(3.3 kB
view details)
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
Rsql-1.0-py3-none-any.whl
(4.9 kB
view details)
Rsql-1.0-py2-none-any.whl
(6.9 kB
view details)
File details
Details for the file Rsql-1.0.tar.gz.
File metadata
- Download URL: Rsql-1.0.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
016c516f8d14dac8b7f194d4886f5f6cf523ce6cd8b0126a099590cdd1b8777b
|
|
| MD5 |
e7786aff823969c23cda22d870547cfb
|
|
| BLAKE2b-256 |
786eee9a6266f3e6c2f941443c7ec8988760db759f92f9fe86305d486763415a
|
File details
Details for the file Rsql-1.0-py3-none-any.whl.
File metadata
- Download URL: Rsql-1.0-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7586ecd9d33db7ce531be8aaf42c14e55f89c2da49f40cb56c425c56e9532881
|
|
| MD5 |
3f7c293faa62f5946141bd5ddccdaa81
|
|
| BLAKE2b-256 |
1d314ab953135ca203456935facb72a3e044db8de1788556fbdd0103236dbeb0
|
File details
Details for the file Rsql-1.0-py2-none-any.whl.
File metadata
- Download URL: Rsql-1.0-py2-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b35ae757c723ae72073c6d694b7c73cf735ad361c344e402ffb3a9c14059294
|
|
| MD5 |
cea3fd3ed2604cb00f149de7a01d0522
|
|
| BLAKE2b-256 |
123a91262c2228ecf1773d3e32f8960251ad4c14cda8c45328deb9316b71c9cb
|