From bf105f704888f0140371aed652ffeac6eabef71f Mon Sep 17 00:00:00 2001 From: Neslihan Date: Mon, 22 Feb 2021 23:19:04 +0300 Subject: [PATCH] Make admins login, out and register --- .gitignore | 3 ++- app/__init__.py | 12 +++++++++++- app/models.py | 22 ++++++++++++++++++++-- config.py | 9 +++++++++ dildebaslar.py | 1 + 5 files changed, 43 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 3ac7239..4f244c6 100644 --- a/.gitignore +++ b/.gitignore @@ -138,4 +138,5 @@ dmypy.json cython_debug/ app.db .idea -.flaskenv \ No newline at end of file +.flaskenv +migrations \ No newline at end of file diff --git a/app/__init__.py b/app/__init__.py index 82b47ea..76b2bb3 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,5 +1,15 @@ from flask import Flask +from config import Config +from flask_sqlalchemy import SQLAlchemy +from flask_migrate import Migrate +from flask_login import LoginManager app = Flask(__name__) +app.config.from_object(Config) +login = LoginManager(app) +db = SQLAlchemy(app) +migrate = Migrate(app, db) +login = LoginManager(app) +login.login_view = 'login' -from app import routes \ No newline at end of file +from app import routes diff --git a/app/models.py b/app/models.py index e66167c..4ed1e21 100644 --- a/app/models.py +++ b/app/models.py @@ -1,9 +1,27 @@ +from datetime import datetime +from app import db from werkzeug.security import generate_password_hash, check_password_hash +from flask_login import UserMixin +from app import login -class User(db.Model): +class User(UserMixin, db.Model): + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(64), index=True, unique=True) + email = db.Column(db.String(120), index=True, unique=True) + password_hash = db.Column(db.String(128)) + # posts = db.relationship('Post', backref='author', lazy='dynamic') + + def __repr__(self): + return ''.format(self.username) + def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): - return check_password_hash(self.password_hash, password) \ No newline at end of file + return check_password_hash(self.password_hash, password) + + +@login.user_loader +def load_user(id): + return User.query.get(int(id)) \ No newline at end of file diff --git a/config.py b/config.py index e69de29..e698921 100644 --- a/config.py +++ b/config.py @@ -0,0 +1,9 @@ +import os +basedir = os.path.abspath(os.path.dirname(__file__)) + + +class Config(object): + SECRET_KEY = os.environ.get('SECRET_KEY') or 'xxx' + SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \ + 'sqlite:///' + os.path.join(basedir, 'app.db') + SQLALCHEMY_TRACK_MODIFICATIONS = False diff --git a/dildebaslar.py b/dildebaslar.py index e69de29..e524e69 100644 --- a/dildebaslar.py +++ b/dildebaslar.py @@ -0,0 +1 @@ +from app import app \ No newline at end of file