Создана база данных, сделана таблица пользователей

This commit is contained in:
mrmur 2022-03-29 18:59:34 +05:00
parent 57ca54f921
commit 5b45413345
8 changed files with 58 additions and 9 deletions

1
data/__all_models.py Normal file
View File

@ -0,0 +1 @@
from . import users

30
data/db_session.py Normal file
View File

@ -0,0 +1,30 @@
import sqlalchemy as sa
import sqlalchemy.orm as orm
from sqlalchemy.orm import Session
import sqlalchemy.ext.declarative as dec
SqlAlchemyBase = dec.declarative_base()
__factory = None
def global_init(db_file):
global __factory
if __factory:
return
if not db_file or not db_file.strip():
raise Exception("Необходимо указать файл базы данных.")
conn_str = f'sqlite:///{db_file.strip()}?check_same_thread=False'
engine = sa.create_engine(conn_str, echo=False)
__factory = orm.sessionmaker(bind=engine)
from . import __all_models
SqlAlchemyBase.metadata.create_all(engine)
def create_session() -> Session:
global __factory
return __factory()

21
data/users.py Normal file
View File

@ -0,0 +1,21 @@
import sqlalchemy
from datetime import date
from .db_session import SqlAlchemyBase
class User(SqlAlchemyBase):
__tablename__ = 'users'
id = sqlalchemy.Column(sqlalchemy.Integer,
primary_key=True, autoincrement=True)
name = sqlalchemy.Column(sqlalchemy.String, nullable=True)
surname = sqlalchemy.Column(sqlalchemy.String, nullable=True)
login = sqlalchemy.Column(sqlalchemy.String, nullable=True)
age = sqlalchemy.Column(sqlalchemy.Integer, nullable=True)
email = sqlalchemy.Column(sqlalchemy.String,
index=True, unique=True, nullable=True)
about = sqlalchemy.Column(sqlalchemy.String, nullable=True)
photo = sqlalchemy.Column(sqlalchemy.Text)
password = sqlalchemy.Column(sqlalchemy.String, nullable=True)
data_reg = sqlalchemy.Column(sqlalchemy.Date,
default=date.today())

13
main.py
View File

@ -1,17 +1,14 @@
from flask import Flask, render_template
from flask import Flask
from data import db_session
app = Flask(__name__)
app.config['SECRET_KEY'] = 'moona_secret_key'
@app.route('/')
def index():
return render_template('base.html')
def run_web():
def main():
db_session.global_init("db/moona_data.db")
app.run()
if __name__ == '__main__':
run_web()
main()

View File

@ -7,7 +7,7 @@
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous">
<title>{{Title}}</title>
<title>{{title}}</title>
</head>
<body>
<nav class="navbar navbar-light" style="background-color: #d4f1ff;">