From 6ddcd00cf91399b247d78c86bcfc8c48c7be7668 Mon Sep 17 00:00:00 2001 From: mrmur Date: Mon, 4 Apr 2022 22:42:38 +0500 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/__all_models.py | 2 +- data/diary_post.py | 22 +++++++ data/users.py | 5 +- db/moona_data.db | Bin 12288 -> 20480 bytes .../{Надпись Moona.png => НадписьMoona.png} | Bin main.py | 10 ++- static/css/diary.css | 19 ++++++ templates/diary.html | 62 ++++++++++++++++++ 8 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 data/diary_post.py rename documents/шаблоны/{Надпись Moona.png => НадписьMoona.png} (100%) create mode 100644 static/css/diary.css create mode 100644 templates/diary.html diff --git a/data/__all_models.py b/data/__all_models.py index 8da95e6..caeaf62 100644 --- a/data/__all_models.py +++ b/data/__all_models.py @@ -1 +1 @@ -from . import users \ No newline at end of file +from . import users, diary_post \ No newline at end of file diff --git a/data/diary_post.py b/data/diary_post.py new file mode 100644 index 0000000..e4aabf2 --- /dev/null +++ b/data/diary_post.py @@ -0,0 +1,22 @@ +import sqlalchemy +from flask_login import UserMixin + +from .db_session import SqlAlchemyBase + + +class DiaryPost(SqlAlchemyBase, UserMixin): + __tablename__ = 'posts' + + id = sqlalchemy.Column(sqlalchemy.Integer, + primary_key=True, autoincrement=True) + name = sqlalchemy.Column(sqlalchemy.String, nullable=True) + text = sqlalchemy.Column(sqlalchemy.String, nullable=True) + author = sqlalchemy.Column(sqlalchemy.Integer, + sqlalchemy.ForeignKey("users.id"), nullable=True) + date = sqlalchemy.Column(sqlalchemy.DateTime, nullable=True) + photo = sqlalchemy.Column(sqlalchemy.Text) + public = sqlalchemy.Column(sqlalchemy.Boolean, nullable=True) + pos_emot = sqlalchemy.Column(sqlalchemy.Text, nullable=True) + nig_emot = sqlalchemy.Column(sqlalchemy.Text, nullable=True) + case = sqlalchemy.Column(sqlalchemy.Text, nullable=True) + link = sqlalchemy.Column(sqlalchemy.Text, nullable=True) diff --git a/data/users.py b/data/users.py index 1b29620..e5ceedb 100644 --- a/data/users.py +++ b/data/users.py @@ -3,6 +3,7 @@ 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 @@ -13,10 +14,10 @@ class User(SqlAlchemyBase, UserMixin): 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) + login = sqlalchemy.Column(sqlalchemy.String, nullable=True, unique=True) age = sqlalchemy.Column(sqlalchemy.Integer, nullable=True) email = sqlalchemy.Column(sqlalchemy.String, - index=True, unique=True, nullable=True) + index=True, nullable=True) about = sqlalchemy.Column(sqlalchemy.String, nullable=True) photo = sqlalchemy.Column(sqlalchemy.Text) password = sqlalchemy.Column(sqlalchemy.String, nullable=True) diff --git a/db/moona_data.db b/db/moona_data.db index 3b531a2339ed8353c810f99966b31dc23603cee3..d0ac84aea7d8753af4f95b3526f8825d9886dc3d 100644 GIT binary patch delta 692 zcmZWm!B5jr9B$p1Y`S$ENHrdOBP6bIkabVJd+T&Cn#)3>9~^Zqw)7 zc%6JeMuA^ILo627ao zr)xHDx*sw9`XYn%{R8fx#=T(;<8P_u#|x+-$xn>6N=e(gU)!2Sxm-Snc>%TCY#Z|` ztEdV_S=8b(oGPR-*H$u$kj@KPLB#@Y^Sr_-uC&D|T$@)1zi!_kf1gZ%pVU!ra{OAc zbAYxr;~j`cqF!j6AgGrv{hYE6a-Fb9&>rd>JD)~9XE=K0d;!i^=XCUJ)OU_u=(96) xseS@DA6(?rBmY+dX9#vo(?E$#I+K}6b2Drju=%+xJD17Na#=Pfet3s%sXJF{$CO!>Lenxh2adF1x+RdB! z*ch3(G&cz>8aSADSbo4IvODk3}FfcJmF)=kUGf7HHGB7r(Dlkg1OioEkHk|xXUScz+!FPTD^no{2 diff --git a/documents/шаблоны/Надпись Moona.png b/documents/шаблоны/НадписьMoona.png similarity index 100% rename from documents/шаблоны/Надпись Moona.png rename to documents/шаблоны/НадписьMoona.png diff --git a/main.py b/main.py index d7627ab..e403870 100644 --- a/main.py +++ b/main.py @@ -1,10 +1,11 @@ from random import randint from flask import Flask, render_template -from flask_login import LoginManager, login_user, logout_user, login_required +from flask_login import LoginManager, login_user, logout_user, login_required, current_user from werkzeug.utils import redirect from data import db_session +from data.diary_post import DiaryPost from data.users import User from forms.login import LoginForm from forms.register import RegisterForm, Confirmation @@ -41,6 +42,13 @@ def main_page(): return render_template('base.html', title='moona') +@app.route('/diary', methods=['GET', 'POST']) +def diary(): + db_sess = db_session.create_session() + posts = db_sess.query(DiaryPost).filter(DiaryPost.author == current_user.id).all() + return render_template('diary.html', title='moona', item=posts) + + @app.route('/logout') @login_required def logout(): diff --git a/static/css/diary.css b/static/css/diary.css new file mode 100644 index 0000000..fb960fb --- /dev/null +++ b/static/css/diary.css @@ -0,0 +1,19 @@ +.bad_user { +margin-left: auto; + margin-right: auto; +background-color: #1daff0; +color: #ffffff; +width: 50%; +height: 55%; +-webkit-border-radius:22px; +-moz-border-radius: 22px; +border-radius: 22px; +border:2px solid #FFFFFF; +margin-top: 20px; +} +.bad_centre { +text-align: center; +} +#image { +width: 70%; +} \ No newline at end of file diff --git a/templates/diary.html b/templates/diary.html new file mode 100644 index 0000000..0b9c9b1 --- /dev/null +++ b/templates/diary.html @@ -0,0 +1,62 @@ + +{% extends "base.html" %} + +{% block content %} +{% if current_user.is_authenticated %} +
+ {% for item in post %} +
+

{{item.name}}

+ {{item.text}} +
+ {% for item2 in item.pos_emot.split('%$%') %} + {{item2}} + {% endfor %} +
+
+ {% for item2 in item.nig_emot.split('%$%') %} + {{item2}} + {% endfor %} +
+
+ {% for item2 in item.case.split('%$%') %} + {{item2}} + {% endfor %} +
+ {% if item.photo != '' %} +
+ +
+ {% endif %} + {% if item.link != '' %} + {% for item2 in item.link %} + + {% endfor %} + {% endif %} + {% if item.public == 1 %} +
Запись опубликована
+ {% else %} +
Запись приватная
+ {% endif %} +
+ {{ current_user.name }} +
+
+ {% endfor %} +
+{% else %} +
+
+

Вы не авторизованы в системе

+

Поэтому вам не доступна страница личного дневника

Но вы можете посмотреть + публикации других пользователей в разделе Главная или Публикации +

+
+
+{% endif %} +{% endblock %} \ No newline at end of file