поделал сайт, сделал orm-модели, requirements.txt

This commit is contained in:
2023-04-29 08:52:01 +07:00
parent 23a56ae0c7
commit 3ee35ae080
17 changed files with 556 additions and 90 deletions
+18
View File
@@ -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()
+14
View File
@@ -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")
+19
View File
@@ -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()