From 7c4b93990dda0092b5969a7f93378adad1c99699 Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 6 Nov 2023 12:18:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD=20=D0=BF=D0=B0?= =?UTF-8?q?=D0=BF=D0=B5=D0=BB=D1=8C=20=D0=B4=D0=BB=D1=8F=20=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20#5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++ README.md | 49 ++++++++++++++++------ adminpanel/config.py | 4 +- adminpanel/settings.py | 9 ++-- adminpanelapp/models.py | 39 +++++++++-------- adminpanelapp/templates/send_telegram_message.html | 6 +++ adminpanelapp/views.py | 4 +- bot_sys/config.py | 7 +--- requirements.txt | 2 + 9 files changed, 79 insertions(+), 44 deletions(-) create mode 100644 adminpanelapp/templates/send_telegram_message.html diff --git a/.gitignore b/.gitignore index e3f5dc5..97c1edd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ config_root_ids __pycache__ log.txt bot.db +adminpanelapp/migrations +adminpanel/__init__.py +.env \ No newline at end of file diff --git a/README.md b/README.md index 24d9c56..02bf2ac 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## TPlatformBot +TPlatformBot ### Видеоинструкции @@ -17,25 +17,25 @@ 3. Профиль пользователя 4. Права доступа 5. Пользователи и группы пользователей -4. Проекты -5. Задачи -6. Потребности -7. Комментарии -8. Языки (сообщения и кнопки) -9. Заказы -10. Подписки +6. Проекты +7. Задачи +8. Потребности +9. Комментарии +10. Языки (сообщения и кнопки) +11. Заказы +12. Подписки ---------- +--- Данный бот позволяет создать свою площадку для взаимодействия на некоммерческой основе в мессенджере Telegram и обмениваться ресурсами и компетенциями для реализации различных проектов. Сам бот разработан на языке программирования **Python** с использованием фреймворка **Aiogram**. База данных - **SQLite3**. ------- +--- **Установка, первичная настройка и запуск** ->Для работы требуется, как минимум, Python 3.8. +> Для работы требуется, как минимум, Python 3.8. *** Загрузка зависимостей *** @@ -45,7 +45,7 @@ `sudo apt-get install python3-modules-sqlite3` -`python3 -m pip install -r requirements.txt` +`python3 -m pip install -r requirements.txt` *** Запуск *** @@ -65,4 +65,27 @@ ## Тестовая версия Тестовая версия запущена по ссылке -http://t.me/Test_TPlatform_bot \ No newline at end of file +http://t.me/Test_TPlatform_bot + +## Запуск Админ панели + +## 1. Выполните миграции + +python manage.py migrate +2. Создайте суперпользователя +python manage.py createsuperuser +3. Введите имя пользователя, почту и пароль +4. Запустите сервер +python manage.py runserver +5. Перейдите по адерсу http://127.0.0.1:8000/ (адрес выведится в терминале) и введите данные ранее созданного пользователя и пароль + +## 2. Создайте SECRET_KEY для джанго + +1. Создайте в корне проекта файл .env +2. Сгенерирйте секретный ключ. Для этого в терминале (python manage.py shell) выполните следующие команды. + + from django.core.management.utils import get_random_secret_key + get_random_secret_key() +3. Вставьте полученный ключ в файл .env + + SECRET_KEY='ваш секретный ключ' diff --git a/adminpanel/config.py b/adminpanel/config.py index e19304d..8444255 100644 --- a/adminpanel/config.py +++ b/adminpanel/config.py @@ -4,8 +4,6 @@ g_telegram_bot_api_token = '' telegram_bot_api_token_file_name = 'config_telegram_bot_api_token' # --------------------------------------------------------- # Дополнительные функции -def ClearReadLine(a_Line): - return a_Line[:-1] def GetFirstLineFromFile(a_FileName): f = open(a_FileName, 'r') result = f.readline() @@ -21,5 +19,5 @@ def GetAllLinesFromFile(a_FileName): def GetTelegramBotApiToken(): global g_telegram_bot_api_token if len(g_telegram_bot_api_token) == 0: - g_telegram_bot_api_token = ClearReadLine(GetFirstLineFromFile(telegram_bot_api_token_file_name)) + g_telegram_bot_api_token = str().strip(GetFirstLineFromFile(telegram_bot_api_token_file_name)) return g_telegram_bot_api_token \ No newline at end of file diff --git a/adminpanel/settings.py b/adminpanel/settings.py index f471600..a2d687e 100644 --- a/adminpanel/settings.py +++ b/adminpanel/settings.py @@ -11,21 +11,22 @@ https://docs.djangoproject.com/en/4.1/ref/settings/ """ import os from pathlib import Path +from dotenv import load_dotenv # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent - # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-13x&cmg=f1gx9u(i@s(xplh+4x=+@ucyujcqf2t3hu7@i(k=fe' +load_dotenv() +SECRET_KEY = os.getenv('SECRET_KEY') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = ['127.0.0.1', 'mirocod.svo.ru'] # Application definition @@ -106,7 +107,7 @@ AUTH_PASSWORD_VALIDATORS = [ # Internationalization # https://docs.djangoproject.com/en/4.1/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'ru' TIME_ZONE = 'UTC' diff --git a/adminpanelapp/models.py b/adminpanelapp/models.py index 4f039a1..de24dc4 100644 --- a/adminpanelapp/models.py +++ b/adminpanelapp/models.py @@ -1,3 +1,4 @@ +import time from urllib.parse import quote import requests @@ -14,7 +15,7 @@ class Orders(models.Model): orderName = models.CharField(max_length=100, verbose_name='наименование', null=True) orderDesc = models.TextField(verbose_name='описание', null=True) orderPhoto = models.ImageField(verbose_name='фото', null=True) - orderPhotoPay = models.ImageField(upload_to='photo/', verbose_name='чек') + orderPhotoPay = models.ImageField(verbose_name='чек') orderAddress = models.CharField(max_length=100, verbose_name='адрес доставки', blank=True, null=True) orderAccess = models.CharField(max_length=100, verbose_name='доступ', blank=True, null=True) orderCreateDateTime = models.DateTimeField(auto_now_add=True, null=True, verbose_name='дата и время создания') @@ -37,12 +38,13 @@ class Orders(models.Model): - Увеличить фото + Увеличить фото