This commit is contained in:
2023-08-18 00:12:02 +04:00
parent 6e17ca2167
commit e358a96e76
5 changed files with 85 additions and 110 deletions

View File

@@ -1,28 +1,28 @@
#!env/bin/python3.10 #!env/bin/python3.10
# -*- coding: UTF-8 -*- # -*- coding: UTF-8 -*-
import sys #для работы с аргументами import sys # для работы с аргументами
#активация FLASK # активация FLASK
from flask import Flask from flask import Flask
app = Flask(__name__, static_url_path='', static_folder='') app = Flask(__name__, static_url_path='', static_folder='')
app.config.from_object('config') #активируем файл конфигурации app.config.from_object('config') # активируем файл конфигурации
#=======================================================================
#Процедура чтения переменных из файла config.py # =======================================================================
#======================================================================= # Процедура чтения переменных из файла config.py
# =======================================================================
def GetConfig(VarName): def GetConfig(VarName):
try: try:
return app.config[VarName] #чтение конфига return app.config[VarName] # чтение конфига
except: except:
return "" #если переменная не задана в конфиге, то выдаем пустоту return "" # если переменная не задана в конфиге, то выдаем пустоту
#=======================================================================
#MAIN # =======================================================================
#======================================================================= # MAIN
# =======================================================================
if __name__ == "__main__": if __name__ == "__main__":
if len (sys.argv) > 1: #если что-то передано кроме имени файла if len(sys.argv) > 1: # если что-то передано кроме имени файла
if (sys.argv[1]=='--getconfig'): #получаем команду if (sys.argv[1] == '--getconfig'): # получаем команду
print (GetConfig(sys.argv[2])) #отправляем аргумент в процедуру print(GetConfig(sys.argv[2])) # отправляем аргумент в процедуру

View File

@@ -1,5 +1,5 @@
#!env/bin/python3.10 #!env/bin/python3.10
from app import app from app import app
if __name__ == '__main__': if __name__ == '__main__':
#app.run(debug=True,ssl_context=('LinuxServer.crt','rootCA.key',3)) # app.run(debug=True,ssl_context=('LinuxServer.crt','rootCA.key',3))
app.run(debug=True) app.run(debug=True)

View File

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

View File

@@ -1,16 +1,16 @@
COMPRESS_MIMETYPES = ['text/html', 'text/css', 'text/xml', 'application/json', 'application/javascript','application/x-www-form-urlencoded'] COMPRESS_MIMETYPES = ['text/html', 'text/css', 'text/xml', 'application/json', 'application/javascript', 'application/x-www-form-urlencoded']
COMPRESS_LEVEL = 6 COMPRESS_LEVEL = 6
COMPRESS_MIN_SIZE = 500 COMPRESS_MIN_SIZE = 500
CSRF_ENABLED = True CSRF_ENABLED = True
SECRET_KEY = 'fc46ds6B4ds56gdr46gggrdyjdsith8dt34t43ct4fa05FA6489er679g' SECRET_KEY = 'fc46ds6B4ds56gdr46gggrdyjdsith8dt34t43ct4fa05FA6489er679g'
UPLOAD_FOLDER = 'app/temp' #Куда сохранять загруженные файлы UPLOAD_FOLDER = 'app/temp' # Куда сохранять загруженные файлы
VERSION = '0.1.2' VERSION = '0.1.2'
PROGNAME= "ИТ-специалист в Ижевске" #основное имя приложения PROGNAME = "ИТ-специалист в Ижевске" # основное имя приложения
SHMNAME="mainsite" #папка на виртуальном диске SHMNAME = "mainsite" # папка на виртуальном диске
MAX_CONTENT_LENGTH= 1 * 1024 * 1024 #максимальный размер файла MAX_CONTENT_LENGTH = 1 * 1024 * 1024 # максимальный размер файла
#def configure_app(app): # def configure_app(app):
# Configure Compressing # Configure Compressing
# Compress(app) # Compress(app)

View File

@@ -1,4 +1,5 @@
Flask Flask
Flask-Compress Flask-Compress
Flask-Cors
gunicorn gunicorn