Backend + Telegram: изменена структура проекта, добавлен эндпоинт для регистрации на бэкенде

This commit is contained in:
2022-11-17 23:08:47 +03:00
parent 387506f766
commit 5c6e93fa4a
16 changed files with 302 additions and 16 deletions

View File

@@ -0,0 +1,28 @@
import json
from flask import Flask
from flask_migrate import Migrate
from textsouls.models import db
app = Flask(
"__name__",
)
migrate = Migrate(app, db)
with open("textsouls/config.json") as config_file:
config_data = json.load(config_file)
main_settings = config_data["main_settings"]
app.config.update(main_settings)
db_settings = config_data["db_settings"]
app.config.update(db_settings)
db.init_app(app)
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)

View File

@@ -0,0 +1,9 @@
{
"main_settings": {
"SECRET_KEY": "some-very-secret-key",
"SQLALCHEMY_TRACK_MODIFICATIONS": false
},
"db_settings": {
"SQLALCHEMY_DATABASE_URI": "postgresql://ownername:pass@localhost/dyxless"
}
}

34
backend/textsouls/main.py Normal file
View File

@@ -0,0 +1,34 @@
from flask import Blueprint
from flask import request
from . import db
from textsouls.models import User
main = Blueprint("main", __name__)
@main.route("/")
def index():
return "Nice!", 200
@main.route("/registration", methods=["POST"])
def registration():
data = request.get_json()
tg_id = data.get("tg_id")
first_name = data.get("first_name")
last_name = data.get("last_name")
username = data.get("username")
new_user = User(
tg_id=tg_id,
first_name=first_name,
last_name=last_name,
username=username,
)
db.session.add(new_user)
db.session.commit()
return "Nice!", 200

View File

@@ -0,0 +1,33 @@
import datetime
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
tg_id = db.Column(db.Integer, unique=True, nullable=False)
first_name = db.Column(db.String(255), nullable=True)
last_name = db.Column(db.String(255), nullable=True)
username = db.Column(db.String(255), nullable=False)
registered_on = db.Column(db.DateTime, nullable=False)
is_admin = db.Column(db.Boolean, nullable=False, default=False)
def __init__(
self,
tg_id,
first_name,
last_name,
username,
is_admin=False,
):
self.tg_id = tg_id
self.first_name = first_name
self.last_name = last_name
self.username = username
self.registered_on = datetime.datetime.now()
self.is_admin = is_admin