WIP with Flask
This commit is contained in:
parent
737771c11c
commit
9a3ab8728b
|
@ -11,8 +11,6 @@ Vagrant.configure("2") do |config|
|
||||||
v.cpus = 2
|
v.cpus = 2
|
||||||
end
|
end
|
||||||
|
|
||||||
config.vm.network "forwarded_port", guest: 3306, host: 3306
|
|
||||||
|
|
||||||
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
|
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
|
||||||
|
|
||||||
#Begin des Installationsscripts
|
#Begin des Installationsscripts
|
||||||
|
@ -43,6 +41,8 @@ Vagrant.configure("2") do |config|
|
||||||
source /home/vagrant/venv/bin/activate
|
source /home/vagrant/venv/bin/activate
|
||||||
pip3 install wheel
|
pip3 install wheel
|
||||||
pip3 install -r /vagrant/requirements.txt
|
pip3 install -r /vagrant/requirements.txt
|
||||||
|
python3 mariadb_setup.py
|
||||||
|
python3 cassandra_setup.py
|
||||||
deactivate
|
deactivate
|
||||||
SHELL
|
SHELL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
"""
|
||||||
|
Python by Techfossguru
|
||||||
|
Copyright (C) 2017 Satish Prasad
|
||||||
|
|
||||||
|
"""
|
||||||
|
import logging
|
||||||
|
from cassandra.cluster import Cluster, BatchStatement
|
||||||
|
from cassandra import ConsistencyLevel
|
||||||
|
from cassandra.query import SimpleStatement
|
||||||
|
|
||||||
|
|
||||||
|
class PythonCassandraExample:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.cluster = None
|
||||||
|
self.session = None
|
||||||
|
self.keyspace = None
|
||||||
|
self.log = None
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
self.cluster.shutdown()
|
||||||
|
|
||||||
|
def createsession(self):
|
||||||
|
self.cluster = Cluster(['localhost'])
|
||||||
|
self.session = self.cluster.connect(self.keyspace)
|
||||||
|
|
||||||
|
def getsession(self):
|
||||||
|
return self.session
|
||||||
|
|
||||||
|
# How about Adding some log info to see what went wrong
|
||||||
|
def setlogger(self):
|
||||||
|
log = logging.getLogger()
|
||||||
|
log.setLevel('INFO')
|
||||||
|
handler = logging.StreamHandler()
|
||||||
|
handler.setFormatter(logging.Formatter(
|
||||||
|
"%(asctime)s [%(levelname)s] %(name)s: %(message)s"))
|
||||||
|
log.addHandler(handler)
|
||||||
|
self.log = log
|
||||||
|
|
||||||
|
def insert_data(self):
|
||||||
|
insert_sql = self.session.prepare(
|
||||||
|
"INSERT INTO employee (emp_id, ename , sal,city) VALUES (?,?,?,?)")
|
||||||
|
batch = BatchStatement()
|
||||||
|
batch.add(insert_sql, (1, 'LyubovK', 2555, 'Dubai'))
|
||||||
|
batch.add(insert_sql, (2, 'JiriK', 5660, 'Toronto'))
|
||||||
|
batch.add(insert_sql, (3, 'IvanH', 2547, 'Mumbai'))
|
||||||
|
batch.add(insert_sql, (4, 'YuliaT', 2547, 'Seattle'))
|
||||||
|
self.session.execute(batch)
|
||||||
|
self.log.info('Batch Insert Completed')
|
||||||
|
|
||||||
|
def select_data(self):
|
||||||
|
rows = self.session.execute('select * from employee limit 5;')
|
||||||
|
for row in rows:
|
||||||
|
print(row.ename, row.sal)
|
||||||
|
|
||||||
|
def update_data(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def delete_data(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
"""
|
||||||
|
Python by Techfossguru
|
||||||
|
Copyright (C) 2017 Satish Prasad
|
||||||
|
|
||||||
|
"""
|
||||||
|
import logging
|
||||||
|
from cassandra.cluster import Cluster, BatchStatement
|
||||||
|
|
||||||
|
|
||||||
|
class PythonCassandraExample:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.cluster = None
|
||||||
|
self.session = None
|
||||||
|
self.keyspace = None
|
||||||
|
self.log = None
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
self.cluster.shutdown()
|
||||||
|
|
||||||
|
def createsession(self):
|
||||||
|
self.cluster = Cluster(['localhost'])
|
||||||
|
self.session = self.cluster.connect(self.keyspace)
|
||||||
|
|
||||||
|
def getsession(self):
|
||||||
|
return self.session
|
||||||
|
|
||||||
|
# How about Adding some log info to see what went wrong
|
||||||
|
def setlogger(self):
|
||||||
|
log = logging.getLogger()
|
||||||
|
log.setLevel('INFO')
|
||||||
|
handler = logging.StreamHandler()
|
||||||
|
handler.setFormatter(logging.Formatter(
|
||||||
|
"%(asctime)s [%(levelname)s] %(name)s: %(message)s"))
|
||||||
|
log.addHandler(handler)
|
||||||
|
self.log = log
|
||||||
|
|
||||||
|
# Create Keyspace based on Given Name
|
||||||
|
def createkeyspace(self, keyspace):
|
||||||
|
"""
|
||||||
|
:param keyspace: The Name of Keyspace to be created
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
# Before we create new lets check if exiting keyspace; we will drop
|
||||||
|
# that and create new
|
||||||
|
rows = self.session.execute(
|
||||||
|
"SELECT keyspace_name FROM system_schema.keyspaces")
|
||||||
|
if keyspace in [row[0] for row in rows]:
|
||||||
|
self.log.info("dropping existing keyspace...")
|
||||||
|
self.session.execute("DROP KEYSPACE " + keyspace)
|
||||||
|
|
||||||
|
self.log.info("creating keyspace...")
|
||||||
|
self.session.execute("""
|
||||||
|
CREATE KEYSPACE %s
|
||||||
|
WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '2' }
|
||||||
|
""" % keyspace)
|
||||||
|
|
||||||
|
self.log.info("setting keyspace...")
|
||||||
|
self.session.set_keyspace(keyspace)
|
||||||
|
|
||||||
|
def create_table(self):
|
||||||
|
c_sql = """
|
||||||
|
CREATE TABLE IF NOT EXISTS employee (emp_id int PRIMARY KEY,
|
||||||
|
ename varchar,
|
||||||
|
sal double,
|
||||||
|
city varchar);
|
||||||
|
"""
|
||||||
|
self.session.execute(c_sql)
|
||||||
|
self.log.info("Employee Table Created !!!")
|
||||||
|
|
||||||
|
# lets do some batch insert
|
||||||
|
if __name__ == '__main__':
|
||||||
|
example1 = PythonCassandraExample()
|
||||||
|
example1.createsession()
|
||||||
|
example1.setlogger()
|
||||||
|
example1.createkeyspace('techfossguru')
|
||||||
|
example1.create_table()
|
||||||
|
example1.insert_data()
|
||||||
|
example1.select_data()
|
|
@ -1,10 +0,0 @@
|
||||||
#!/usr/bin/python
|
|
||||||
import mysql.connector as mariadb
|
|
||||||
|
|
||||||
mariadb_connection = mariadb.connect(user='vagrant',
|
|
||||||
database='testdb')
|
|
||||||
cursor = mariadb_connection.cursor()
|
|
||||||
cursor.execute("create table if not exists test (a bigint auto_increment primary key, first_name varchar(128), last_name varchar(128))")
|
|
||||||
cursor.execute("INSERT INTO test (first_name,last_name) VALUES (%s,%s)", ("first_name", "last_name"))
|
|
||||||
|
|
||||||
mariadb_connection.commit()
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
import mysql.connector as mariadb
|
||||||
|
|
||||||
|
mariadb_connection = mariadb.connect(user='vagrant',
|
||||||
|
database='testdb')
|
||||||
|
cursor = mariadb_connection.cursor()
|
||||||
|
cursor.execute("""create table if not exists test (
|
||||||
|
id bigint auto_increment primary key,
|
||||||
|
first_name varchar(128),
|
||||||
|
middle_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
street_name varchar(128)),
|
||||||
|
city_name varchar(128)),
|
||||||
|
state_name varchar(128)),
|
||||||
|
country_name varchar(128)),
|
||||||
|
telephonenumber varchar(128)),
|
||||||
|
mobile_number varchar(128)),
|
||||||
|
email varchar(128)),
|
||||||
|
hobby varchar(128)),
|
||||||
|
gender varchar(128)),
|
||||||
|
salutation varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
last_name varchar(128)),
|
||||||
|
""")
|
||||||
|
|
||||||
|
cursor.execute("""INSERT INTO test (first_name,last_name) VALUES (%s,%s)""",
|
||||||
|
("first_name", "last_name"))
|
||||||
|
|
||||||
|
mariadb_connection.commit()
|
||||||
|
|
||||||
|
cursor.execute("select * from test")
|
||||||
|
data = cursor.fetchall()
|
||||||
|
for row in data:
|
||||||
|
print(row)
|
|
@ -0,0 +1,50 @@
|
||||||
|
from flask import Flask
|
||||||
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
app.config['SQLALCHEMY_DATABASE_URI'] = (
|
||||||
|
'mysql+mysqlconnector://vagrant@localhost/testdb')
|
||||||
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||||
|
db = SQLAlchemy(app)
|
||||||
|
|
||||||
|
|
||||||
|
class Country(db.Model):
|
||||||
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
name = db.Column(db.String(80), unique=True, nullable=False)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return '<Country %r>' % self.name
|
||||||
|
|
||||||
|
|
||||||
|
class City(db.Model):
|
||||||
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
zip_code = db.Column(db.Integer, unique=True, nullable=False)
|
||||||
|
name = db.Column(db.String(80), unique=True, nullable=False)
|
||||||
|
country_id = db.Column(db.Integer, db.ForeignKey('country.id'),
|
||||||
|
nullable=False)
|
||||||
|
country = db.relationship('City', backref=db.backref('countrys',
|
||||||
|
lazy=True))
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return '<City %r>' % self.name
|
||||||
|
|
||||||
|
|
||||||
|
class User(db.Model):
|
||||||
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
username = db.Column(db.String(80), unique=True, nullable=False)
|
||||||
|
email = db.Column(db.String(120), unique=True, nullable=False)
|
||||||
|
first_name = db.Column(db.String(120), nullable=False)
|
||||||
|
last_name = db.Column(db.String(120), nullable=False)
|
||||||
|
middle_name = db.Column(db.String(120), nullable=False)
|
||||||
|
street_name = db.Column(db.String(120), nullable=False)
|
||||||
|
telephonenumber = db.Column(db.String(120), nullable=False)
|
||||||
|
mobile_number = db.Column(db.String(120), nullable=False)
|
||||||
|
hobby = db.Column(db.String(120), nullable=False)
|
||||||
|
salutation = db.Column(db.String(120), nullable=False)
|
||||||
|
gender = db.Column(db.String(120), nullable=False)
|
||||||
|
city_id = db.Column(db.Integer, db.ForeignKey('city.id'), nullable=False)
|
||||||
|
city = db.relationship('City', backref=db.backref('users', lazy=True))
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return '<User %r>' % self.username
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
import mysql.connector as mariadb
|
||||||
|
|
||||||
|
mariadb_connection = mariadb.connect(user='vagrant',
|
||||||
|
database='testdb')
|
||||||
|
cursor = mariadb_connection.cursor()
|
||||||
|
cursor.execute("""create table if not exists test (
|
||||||
|
a bigint auto_increment primary key,
|
||||||
|
first_name varchar(128),
|
||||||
|
last_name varchar(128))""")
|
||||||
|
cursor.execute("""INSERT INTO test (first_name,last_name) VALUES (%s,%s)""",
|
||||||
|
("first_name", "last_name"))
|
||||||
|
|
||||||
|
mariadb_connection.commit()
|
||||||
|
|
||||||
|
cursor.execute("select * from test")
|
||||||
|
data = cursor.fetchall()
|
||||||
|
for row in data:
|
||||||
|
print(row)
|
|
@ -0,0 +1,4 @@
|
||||||
|
from mariadb_db import db
|
||||||
|
|
||||||
|
|
||||||
|
db.create_all()
|
|
@ -1,3 +1,6 @@
|
||||||
wheel
|
wheel
|
||||||
cassandra-driver
|
cassandra-driver
|
||||||
|
flask
|
||||||
|
flask-sqlalchemy
|
||||||
|
flask-cqlalchemy
|
||||||
mysql-connector
|
mysql-connector
|
||||||
|
|
Loading…
Reference in New Issue