поделал сайт, сделал orm-модели, requirements.txt
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
SQLALCHEMY_DATABASE_URL = "sqlite:///./db.sql"
|
||||
|
||||
engine = create_engine(SQLALCHEMY_DATABASE_URL)
|
||||
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
||||
|
||||
Base = declarative_base()
|
||||
Base.metadata.create_all(bind=engine)
|
||||
|
||||
def get_db():
|
||||
db = SessionLocal()
|
||||
try:
|
||||
yield db
|
||||
finally:
|
||||
db.close()
|
||||
@@ -0,0 +1,14 @@
|
||||
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
|
||||
from sqlalchemy.orm import relationship
|
||||
from functions.admin.models.database import Base
|
||||
|
||||
class Token(Base):
|
||||
__tablename__ = "tokens"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
access_token = Column(String(255), unique=True)
|
||||
refresh_token = Column(String(255), unique=True)
|
||||
is_active = Column(Boolean(), default=True)
|
||||
|
||||
user_id = Column(Integer, ForeignKey("users.id"))
|
||||
user = relationship("User", back_populates="tokens")
|
||||
@@ -0,0 +1,19 @@
|
||||
import hashlib
|
||||
|
||||
from sqlalchemy import Boolean, Column, Integer, String
|
||||
from sqlalchemy.orm import relationship
|
||||
from functions.admin.models.database import Base
|
||||
|
||||
class User(Base):
|
||||
__tablename__ = "users"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
username = Column(String(50), unique=True)
|
||||
email = Column(String(255), unique=True)
|
||||
password_hash = Column(String(255))
|
||||
is_active = Column(Boolean(), default=True)
|
||||
|
||||
tokens = relationship("Token", back_populates="user")
|
||||
|
||||
def check_password(self, password: str):
|
||||
return self.password_hash == hashlib.sha384(password.encode()).hexdigest()
|
||||
Reference in New Issue
Block a user