Procházet zdrojové kódy

В модель БД добавлены таблицы files и roles. Имя БД изменено с conventus.db на incepted.db

Andrei před 3 roky
rodič
revize
4f224b7a27

+ 1 - 1
data/__all_models.py

@@ -1 +1 @@
-# from . import user
+from . import users, roles, files

+ 18 - 0
data/files.py

@@ -0,0 +1,18 @@
+from datetime import date
+
+import sqlalchemy
+from flask_login import UserMixin
+from werkzeug.security import check_password_hash, generate_password_hash
+
+from .db_session import SqlAlchemyBase
+
+
+class Files(SqlAlchemyBase, UserMixin):
+    __tablename__ = 'files'
+
+    id = sqlalchemy.Column(sqlalchemy.Integer,
+                           primary_key=True, autoincrement=True)
+    path = sqlalchemy.Column(sqlalchemy.String, nullable=False)
+    user = sqlalchemy.Column(sqlalchemy.Integer,
+                             sqlalchemy.ForeignKey("users.id"), nullable=True, default=None)
+    up_date = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False)

+ 13 - 0
data/roles.py

@@ -0,0 +1,13 @@
+import sqlalchemy
+from flask_login import UserMixin
+
+from .db_session import SqlAlchemyBase
+
+
+class Roles(SqlAlchemyBase, UserMixin):
+    __tablename__ = 'roles'
+
+    id = sqlalchemy.Column(sqlalchemy.Integer,
+                           primary_key=True, autoincrement=True)
+    name = sqlalchemy.Column(sqlalchemy.String, nullable=False)
+    rights = sqlalchemy.Column(sqlalchemy.Integer)

+ 33 - 0
data/users.py

@@ -0,0 +1,33 @@
+from datetime import date
+
+import sqlalchemy
+from flask_login import UserMixin
+from werkzeug.security import check_password_hash, generate_password_hash
+
+from .db_session import SqlAlchemyBase
+
+
+class User(SqlAlchemyBase, UserMixin):
+    __tablename__ = 'users'
+
+    id = sqlalchemy.Column(sqlalchemy.Integer,
+                           primary_key=True, autoincrement=True)
+    name = sqlalchemy.Column(sqlalchemy.String, nullable=False)
+    surname = sqlalchemy.Column(sqlalchemy.String, nullable=True)
+    login = sqlalchemy.Column(sqlalchemy.String, nullable=False, unique=True)
+    email = sqlalchemy.Column(sqlalchemy.String,
+                              index=True, nullable=False)
+    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())
+    role = sqlalchemy.Column(sqlalchemy.String, nullable=True)
+    activity = sqlalchemy.Column(sqlalchemy.Date, nullable=True)
+    birthday = sqlalchemy.Column(sqlalchemy.Date, nullable=True)
+
+    def check_password(self, password):
+        return check_password_hash(self.password, password)
+
+    def set_password(self, password):
+        self.password = generate_password_hash(password)

+ 0 - 0
db/заглушка


+ 0 - 0
docs/заглушка


+ 4 - 3
main.py

@@ -1,4 +1,5 @@
-from flask import Flask
+from flask import Flask, render_template
+from data.users import User
 from waitress import serve
 from data import db_session
 
@@ -8,11 +9,11 @@ app.config['SECRET_KEY'] = 'test_secret_key'
 
 @app.route('/')
 def base():
-    return ''
+    return render_template('main.html')
 
 
 def main():
-    db_session.global_init("db/conventus.db")
+    db_session.global_init("db/incepted.db")
     serve(app, host='0.0.0.0', port=5000)
 
 

+ 4 - 0
static/css/base.css

@@ -0,0 +1,4 @@
+.navbar {
+    display: flex;
+    justify-content: flex-end;
+}

+ 7 - 0
templates/base.html

@@ -3,9 +3,16 @@
 <head>
     <meta charset="UTF-8">
     <link rel="stylesheet" href="../static/css/base.css">
+    <link rel="stylesheet"
+          href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
+          integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
+          crossorigin="anonymous">
     <title>{{title}}</title>
 </head>
 <body>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js"
+        integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8"
+        crossorigin="anonymous"></script>
 <!-- Begin page content -->
 <main role="main">
     {% block content %}{% endblock %}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 1
templates/main.html


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů