Added sqlalchemy, models, ...
This commit is contained in:
parent
6fd210d91d
commit
90aae3b78a
@ -1,4 +1,8 @@
|
|||||||
from flask import Flask
|
from flask import Flask, jsonify
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
from db import db
|
||||||
|
|
||||||
|
from models import User
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
@ -8,5 +12,32 @@ def hello_world():
|
|||||||
return 'Hello World!'
|
return 'Hello World!'
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/users')
|
||||||
|
def users():
|
||||||
|
res = []
|
||||||
|
for i in User.query.all():
|
||||||
|
res.append(i.to_dict(show='*'))
|
||||||
|
|
||||||
|
return jsonify(res)
|
||||||
|
|
||||||
|
ded
|
||||||
|
def create_app():
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
# Create Flask app load app.config
|
||||||
|
application = Flask(__name__)
|
||||||
|
application.config.from_object("config.ConfigClass")
|
||||||
|
|
||||||
|
application.app_context().push()
|
||||||
|
|
||||||
|
db.init_app(application)
|
||||||
|
|
||||||
|
return application
|
||||||
|
|
||||||
|
|
||||||
|
app = create_app()
|
||||||
|
|
||||||
|
# Start development web server
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run()
|
app.run()
|
||||||
|
|
||||||
|
21
webservice/config.py
Normal file
21
webservice/config.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigClass(object):
|
||||||
|
""" Flask application config """
|
||||||
|
|
||||||
|
# Flask settings
|
||||||
|
SECRET_KEY = os.getenv('SECRET_KEY')
|
||||||
|
|
||||||
|
# Flask-SQLAlchemy settings
|
||||||
|
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://" + \
|
||||||
|
os.getenv('MYSQL_USER') + ":" + \
|
||||||
|
os.getenv('MYSQL_PASSWORD') + "@" + \
|
||||||
|
os.getenv('MYSQL_HOST') + ":" + \
|
||||||
|
(os.getenv("MYSQL_PORT") or str(3306)) + "/" + \
|
||||||
|
os.getenv('MYSQL_DATABASE')
|
||||||
|
SQLALCHEMY_TRACK_MODIFICATIONS = False # Avoids SQLAlchemy warning
|
3
webservice/db.py
Normal file
3
webservice/db.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
|
|
||||||
|
db = SQLAlchemy()
|
34
webservice/models.py
Normal file
34
webservice/models.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
from db import db
|
||||||
|
|
||||||
|
|
||||||
|
class User(db.Model):
|
||||||
|
__tablename__ = 'users'
|
||||||
|
username = db.Column('username', db.String(255), nullable=False, unique=True, primary_key=True)
|
||||||
|
password = db.Column('password', db.String(255), nullable=False, server_default='')
|
||||||
|
user_id = db.Column('user_id', db.Integer(), nullable=False, server_default='')
|
||||||
|
telegram_name = db.Column('telegram_name', db.String(255), nullable=True, server_default='')
|
||||||
|
admin = db.Column('admin', db.Boolean(), server_default="false")
|
||||||
|
|
||||||
|
|
||||||
|
class Transaction(db.Model):
|
||||||
|
__tablename__ = 'transactions'
|
||||||
|
t_id = db.Column('t_id', db.Integer(), nullable=False, unique=True, primary_key=True)
|
||||||
|
username = db.Column('username', db.Integer(), db.ForeignKey('user.user_id', ondelete='CASCADE'))
|
||||||
|
symbol = db.Column('symbol', db.String(255), unique=True)
|
||||||
|
time = db.Column('time', db.DateTime())
|
||||||
|
count = db.Column('count', db.Integer())
|
||||||
|
price = db.Column('price', db.Float())
|
||||||
|
|
||||||
|
|
||||||
|
class Keyword(db.Model):
|
||||||
|
__tablename__ = 'keywords'
|
||||||
|
s_id = db.Column('s_id', db.Integer(), nullable=False, unique=True, primary_key=True)
|
||||||
|
username = db.Column('username', db.Integer(), db.ForeignKey('user.user_id', ondelete='CASCADE'))
|
||||||
|
keyword = db.Column('keyword', db.String(255))
|
||||||
|
|
||||||
|
|
||||||
|
class Share(db.Model):
|
||||||
|
__tablename__ = 'shares'
|
||||||
|
a_id = db.Column('a_id', db.Integer(), nullable=False, unique=True, primary_key=True)
|
||||||
|
username = db.Column('username', db.Integer(), db.ForeignKey('user.user_id', ondelete='CASCADE'))
|
||||||
|
symbol = db.Column('symbol', db.String(255))
|
@ -2,3 +2,5 @@ Flask~=2.0.3
|
|||||||
python-dotenv==0.19.2
|
python-dotenv==0.19.2
|
||||||
requests==2.27.1
|
requests==2.27.1
|
||||||
uwsgi==2.0.20
|
uwsgi==2.0.20
|
||||||
|
Flask_SQLAlchemy==2.5.1
|
||||||
|
python-dotenv==0.19.2
|
Loading…
Reference in New Issue
Block a user