From b225b26bb35312f221957a1069516907cffbcf25 Mon Sep 17 00:00:00 2001 From: Mitsushidu Date: Wed, 1 May 2024 16:02:32 +0300 Subject: [PATCH 1/3] add environ variables, env.exapmle --- .env.example | 12 ++++++++++++ src/core/settings.py | 16 +++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7b7b620 --- /dev/null +++ b/.env.example @@ -0,0 +1,12 @@ +POSTGRES_DB=postgres_db +POSTGRES_USER=postgres +POSTGRES_PASSWORD=postgres + +DB_HOST=db +DB_PORT=5432 + +SECRET_KEY=secret_key +DEBUG=True +ALLOWED_HOSTS='localhost 127.0.0.1' + +TELEGRAM_TOKEN=token \ No newline at end of file diff --git a/src/core/settings.py b/src/core/settings.py index 86c1aac..e3096c1 100644 --- a/src/core/settings.py +++ b/src/core/settings.py @@ -1,12 +1,21 @@ +import os from pathlib import Path +import environ + +env = environ.Env( + DEBUG=(bool, False) +) + BASE_DIR = Path(__file__).resolve().parent.parent -SECRET_KEY = "django-insecure-v3b$$**=s5=icl9=sn%p^8o3332r(ams5)vgpv+#ssmep*pq=1" +environ.Env.read_env(os.path.join(BASE_DIR, '.env')) -DEBUG = True +SECRET_KEY = env('SECRET_KEY') -ALLOWED_HOSTS = [] +DEBUG = env('DEBUG') + +ALLOWED_HOSTS = env('ALLOWED_HOSTS').split() INSTALLED_APPS = [ "django.contrib.admin", @@ -81,3 +90,4 @@ STATIC_URL = "static/" DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" + From 7d5a37d0e73e90051f1f54315088cc58dda8a77b Mon Sep 17 00:00:00 2001 From: Mitsushidu Date: Thu, 2 May 2024 01:12:35 +0300 Subject: [PATCH 2/3] add django-environ to poetry dependencies, comments to env.example --- .env.example | 8 ++++++++ poetry.lock | 36 ++++++++++++++++++++++++++---------- pyproject.toml | 2 +- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/.env.example b/.env.example index 7b7b620..0cc37dc 100644 --- a/.env.example +++ b/.env.example @@ -1,12 +1,20 @@ +# Название, логин и пароль для БД postgres POSTGRES_DB=postgres_db POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres +# Данные для подключения к БД DB_HOST=db DB_PORT=5432 +# Переменные Django +# ПРЕДУПРЕЖДЕНИЕ: Хранить секретный ключ не должен попадать в общий доступ SECRET_KEY=secret_key +# ПРЕДУПРЕЖДЕНИЕ: Debug = true использовать только при разработке DEBUG=True +# Список разрешенных хостов ALLOWED_HOSTS='localhost 127.0.0.1' +# Переменные бота +# Токен для подключения к Telegram API TELEGRAM_TOKEN=token \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 67acac1..856cf3d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -374,6 +374,22 @@ tzdata = {version = "*", markers = "sys_platform == \"win32\""} argon2 = ["argon2-cffi (>=19.1.0)"] bcrypt = ["bcrypt"] +[[package]] +name = "django-environ" +version = "0.11.2" +description = "A package that allows you to utilize 12factor inspired environment variables to configure your Django application." +optional = false +python-versions = ">=3.6,<4" +files = [ + {file = "django-environ-0.11.2.tar.gz", hash = "sha256:f32a87aa0899894c27d4e1776fa6b477e8164ed7f6b3e410a62a6d72caaf64be"}, + {file = "django_environ-0.11.2-py2.py3-none-any.whl", hash = "sha256:0ff95ab4344bfeff693836aa978e6840abef2e2f1145adff7735892711590c05"}, +] + +[package.extras] +develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.dev0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] +docs = ["furo (>=2021.8.17b43,<2021.9.dev0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"] +testing = ["coverage[toml] (>=5.0a4)", "pytest (>=4.6.11)"] + [[package]] name = "dulwich" version = "0.21.7" @@ -477,13 +493,13 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.13.4" +version = "3.14.0" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.4-py3-none-any.whl", hash = "sha256:404e5e9253aa60ad457cae1be07c0f0ca90a63931200a47d9b6a6af84fd7b45f"}, - {file = "filelock-3.13.4.tar.gz", hash = "sha256:d13f466618bfde72bd2c18255e269f72542c6e70e7bac83a0232d6b1cc5c8cf4"}, + {file = "filelock-3.14.0-py3-none-any.whl", hash = "sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f"}, + {file = "filelock-3.14.0.tar.gz", hash = "sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a"}, ] [package.extras] @@ -840,13 +856,13 @@ files = [ [[package]] name = "pyproject-hooks" -version = "1.0.0" +version = "1.1.0" description = "Wrappers to call pyproject.toml-based build backend hooks." optional = false python-versions = ">=3.7" files = [ - {file = "pyproject_hooks-1.0.0-py3-none-any.whl", hash = "sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8"}, - {file = "pyproject_hooks-1.0.0.tar.gz", hash = "sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5"}, + {file = "pyproject_hooks-1.1.0-py3-none-any.whl", hash = "sha256:7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2"}, + {file = "pyproject_hooks-1.1.0.tar.gz", hash = "sha256:4b37730834edbd6bd37f26ece6b44802fb1c1ee2ece0e54ddff8bfc06db86965"}, ] [[package]] @@ -1126,13 +1142,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.0" +version = "20.26.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.26.0-py3-none-any.whl", hash = "sha256:0846377ea76e818daaa3e00a4365c018bc3ac9760cbb3544de542885aad61fb3"}, - {file = "virtualenv-20.26.0.tar.gz", hash = "sha256:ec25a9671a5102c8d2657f62792a27b48f016664c6873f6beed3800008577210"}, + {file = "virtualenv-20.26.1-py3-none-any.whl", hash = "sha256:7aa9982a728ae5892558bff6a2839c00b9ed145523ece2274fad6f414690ae75"}, + {file = "virtualenv-20.26.1.tar.gz", hash = "sha256:604bfdceaeece392802e6ae48e69cec49168b9c5f4a44e483963f9242eb0e78b"}, ] [package.dependencies] @@ -1220,4 +1236,4 @@ test = ["pytest"] [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "53f3305ee3749dcc06c871f0c03bbcd0b670fed4bba172a0680161d6aca7ee5a" +content-hash = "ede1f85c6069cae41f29b9068631248230ff3a90199cb708c1ba7b2ddf3222cc" diff --git a/pyproject.toml b/pyproject.toml index 97cfeca..1a8929b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ python = "^3.12" django = "^5.0.4" python-telegram-bot = "^21.1.1" poetry-plugin-export = "^1.7.1" - +django-environ= "^0.11.2" [build-system] requires = ["poetry-core"] From 97766d88a718dc78af97f48ed75f2acead5fcabc Mon Sep 17 00:00:00 2001 From: Mitsushidu Date: Thu, 2 May 2024 13:34:21 +0300 Subject: [PATCH 3/3] resolved conflicts in settings, pyproject.toml --- poetry.lock | 17 ++++++++++++++++- pyproject.toml | 1 + src/core/settings.py | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 856cf3d..d17c417 100644 --- a/poetry.lock +++ b/poetry.lock @@ -374,6 +374,21 @@ tzdata = {version = "*", markers = "sys_platform == \"win32\""} argon2 = ["argon2-cffi (>=19.1.0)"] bcrypt = ["bcrypt"] +[[package]] +name = "django-asgi-lifespan" +version = "0.3.1" +description = "Django ASGI handler with Lifespan Protocol support." +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "django_asgi_lifespan-0.3.1-py3-none-any.whl", hash = "sha256:e2b27f34ab7773ab33a2a373fd074c0ff444c69a74a3ed146e6b027210eb37ab"}, + {file = "django_asgi_lifespan-0.3.1.tar.gz", hash = "sha256:edb7ffe87f96d1f20675a7875e00ca114412cb73a292a79c02a234e42f693fac"}, +] + +[package.dependencies] +asgiref = ">=3,<4" +Django = ">=4.2,<5.0.0 || >5.0.0,<5.0.1 || >5.0.1,<5.0.2 || >5.0.2,<6" + [[package]] name = "django-environ" version = "0.11.2" @@ -1236,4 +1251,4 @@ test = ["pytest"] [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "ede1f85c6069cae41f29b9068631248230ff3a90199cb708c1ba7b2ddf3222cc" +content-hash = "478a32115e2102894376d9c5f96a9ae4e2013493322770d5d777d42217189f14" diff --git a/pyproject.toml b/pyproject.toml index 1a8929b..63ffddc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,6 +11,7 @@ django = "^5.0.4" python-telegram-bot = "^21.1.1" poetry-plugin-export = "^1.7.1" django-environ= "^0.11.2" +django-asgi-lifespan = "^0.3.1" [build-system] requires = ["poetry-core"] diff --git a/src/core/settings.py b/src/core/settings.py index e3096c1..649986b 100644 --- a/src/core/settings.py +++ b/src/core/settings.py @@ -91,3 +91,4 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" +TELEGRAM_TOKEN = env('TELEGRAM_TOKEN')