147 lines
3.8 KiB
Python
147 lines
3.8 KiB
Python
#!env/bin/python3.10
|
||
# -*- coding: UTF-8 -*-
|
||
|
||
#Активация FLASK
|
||
from app import app #чтение из config.py, роуты
|
||
from flask import render_template #использование шаблонов
|
||
from flask import request # получение данных Cookie, GET и POST
|
||
from flask import make_response #формирование заголовока, используется совместо с redirect
|
||
from flask import redirect # Код страницы и перенаравление
|
||
|
||
from flask import Response
|
||
|
||
|
||
#from flask-login import login_user, logout_user, current_user, login_required #авторизация
|
||
#from .forms import LoginForm
|
||
|
||
|
||
#import urllib.parse
|
||
#import importlib.util
|
||
import http.cookies #работа с кукисами
|
||
import datetime #работа с датой
|
||
import os #чтение куки и работа с файлами и папками
|
||
import html #для функции Escape
|
||
|
||
#для мультипроцессинга
|
||
import sys
|
||
import subprocess
|
||
import threading #потоки
|
||
|
||
#Сжатие данных для API
|
||
import gzip
|
||
|
||
|
||
#Глобальные переменные
|
||
ProgName = app.config['PROGNAME']
|
||
version = app.config['VERSION']
|
||
|
||
LevelA=""
|
||
Flag=False
|
||
FIO=""
|
||
UserID=""
|
||
tb_Hashpassword=""
|
||
OldSession=""
|
||
CurSessionID=""
|
||
|
||
|
||
S=['0','1','2','3']
|
||
|
||
@app.errorhandler(413)
|
||
def request_entity_too_large(error):
|
||
return 'Превышен максимальный размер файла', 413
|
||
|
||
|
||
|
||
@app.errorhandler(404)
|
||
def page_not_found(e):
|
||
|
||
return """Здесь нет того, чего ты ищешь... <br><a href ="/"> Вернутся на главную</a> """,404
|
||
|
||
@app.errorhandler(403)
|
||
def access_denided(e):
|
||
#Получаем куки и сессию
|
||
|
||
SessionID = request.cookies.get('SessionID')
|
||
print (SessionID)
|
||
|
||
if SessionID is None or SessionID=="": #если нет сессии
|
||
return redirect("/login", code=302)
|
||
else:
|
||
HTML= """Похоже, сюда можно только администраторам. <br><a href ="/"> Вернутся на главную</a> """
|
||
return render_template('index.htm', UserHeader = APIC.UserHeader(SessionID,"<font color=red>Доступ запрещен</font>",ProgName), HTML=HTML)
|
||
|
||
#return render_template('404.html'), 404
|
||
|
||
|
||
|
||
#Добавляем роуты
|
||
@app.route('/')
|
||
@app.route('/index')
|
||
@app.route('/about')
|
||
@app.route('/main')
|
||
def main():
|
||
|
||
Title="Обо мне"
|
||
return render_template('about.htm',
|
||
UserHeader = UserHeader(Title,ProgName)
|
||
,version=version
|
||
,Title=Title
|
||
,ProgName=ProgName
|
||
)
|
||
|
||
@app.route('/rustdesk')
|
||
def rustdesk():
|
||
|
||
Title="RustDesk"
|
||
return render_template('rustdesk.htm',
|
||
UserHeader = UserHeader(Title,ProgName)
|
||
,version=version
|
||
,Title=Title
|
||
,ProgName=ProgName
|
||
)
|
||
|
||
|
||
@app.route('/price')
|
||
def price():
|
||
|
||
Title="Прайс"
|
||
return render_template('price.htm',
|
||
UserHeader = UserHeader(Title,ProgName)
|
||
,version=version
|
||
,Title=Title
|
||
,ProgName=ProgName
|
||
)
|
||
|
||
@app.route('/portfolio')
|
||
def portfolio():
|
||
|
||
Title="Отзывы"
|
||
return render_template('portfolio.htm',
|
||
UserHeader = UserHeader(Title,ProgName)
|
||
,version=version
|
||
,Title=Title
|
||
,ProgName=ProgName
|
||
)
|
||
|
||
|
||
def UserHeader(Title,ProgName):
|
||
CurStr=""
|
||
if (os.path.exists("app/templates/_header")==True):
|
||
file = open("app/templates/_header", "r")
|
||
#print ("Чтение заголовка")
|
||
CurStr= file.read()
|
||
file.close()
|
||
#print (CurStr)
|
||
CurStr=CurStr.replace("{{ProgName}}",ProgName)
|
||
CurStr=CurStr.replace("{{Title}}",Title)
|
||
|
||
return CurStr
|
||
|
||
@app.route('/favicon.ico')
|
||
def favicon1():
|
||
if (os.path.exists("app/static/image/favicon.ico")==True):
|
||
file = open("app/static/image/favicon.ico", "r")
|
||
CurStr= file.read()
|
||
file.close()
|
||
return CurStr
|