исправил копирайтс в футере, отображались, но jinja2 ругалась
parent
dfea8eff48
commit
2c89cee7ac
|
@ -0,0 +1,9 @@
|
||||||
|
Лицензия MIT
|
||||||
|
|
||||||
|
Copyright © 2023 Сергей Ванюшкин <pi3c@yandex.ru>
|
||||||
|
|
||||||
|
Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, а также лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий:
|
||||||
|
|
||||||
|
Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения.
|
||||||
|
|
||||||
|
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
|
64
README.md
64
README.md
|
@ -1,3 +1,63 @@
|
||||||
# pyproger
|
# Pyproger blog
|
||||||
|
|
||||||
Blog about python
|
### Описание
|
||||||
|
Данный проект начинался как pet-проект в рамках изучения фреймворка Flask, но решил выпустить его в "свет".
|
||||||
|
|
||||||
|
Проект полностью написан на телефоне с андроидом на борту🙂, о чем буду рассказывать в этом блоге.
|
||||||
|
|
||||||
|
Блог доступен по адресу https://pyproger.ru
|
||||||
|
|
||||||
|
### Возможности
|
||||||
|
- Админ панель управления контентом
|
||||||
|
- Отображение всех записей с пагинацией
|
||||||
|
- Добавление тэгов к статьям
|
||||||
|
- Отображение статей по тэгам
|
||||||
|
|
||||||
|
### Зависимости
|
||||||
|
- Для работы сервиса необходима установленная СУБД postgresql. Создана база данных и пользователь с правами на нее.
|
||||||
|
- poetry - Система управления зависимостями в Python.
|
||||||
|
|
||||||
|
Остальное добавиться автоматически на этапе установки.
|
||||||
|
|
||||||
|
### Установка
|
||||||
|
Установите и настройте postgresql согласно офф. документации. Создайте пользователя и бд.
|
||||||
|
|
||||||
|
Установите (если еще не установлены) python и python-pip, git
|
||||||
|
|
||||||
|
Установите систему управления зависимостями
|
||||||
|
> `$ pip install poetry`
|
||||||
|
|
||||||
|
Клонируйте репозиторий
|
||||||
|
> `$ git clone https://git.pi3c.ru/pi3code/pyproger.git`
|
||||||
|
|
||||||
|
Перейдите в каталог, создайте и запустите виртуальное окружение
|
||||||
|
> `$ cd pyproger`
|
||||||
|
|
||||||
|
> `$ poetry install`
|
||||||
|
|
||||||
|
> `$ poetry shell`
|
||||||
|
|
||||||
|
Запустите скрипт создания начальной конфигурации.
|
||||||
|
> `$ python ./generate_dotenv.py`
|
||||||
|
|
||||||
|
Скрипт запросит данные необходимые для подключения к бд и создаст .env файл с "секретами" необходимыми для работы.
|
||||||
|
|
||||||
|
Примените миграции в базу данных и создайте учетную запись Администратора
|
||||||
|
> `$ flask db upgrade`
|
||||||
|
|
||||||
|
> `$ flask create-superuser <nik>`
|
||||||
|
|
||||||
|
где <nik> замените своим логином, ответьте на вопросы.
|
||||||
|
Данные этого пользователя будут необходимы для входа в административную часть сайта
|
||||||
|
|
||||||
|
Запустите приложение
|
||||||
|
> `$ flask run`
|
||||||
|
|
||||||
|
Перейдите в браузере по адресу 127.0.0.1:5000 для доступа к блогу или 127.0.0.1:5000/admin в админ панель
|
||||||
|
|
||||||
|
### Авторы
|
||||||
|
- Сергей Ванюшкин <pi3c@yandex.ru>
|
||||||
|
|
||||||
|
### Лицензия
|
||||||
|
Распространяется под [MIT лицензией](https://www.opensource.org/licenses/mit-license.php).
|
||||||
|
Подробнее на русском в файле LICENSE.md
|
||||||
|
|
|
@ -32,7 +32,7 @@ def index(page=1):
|
||||||
total_pages=total_pages,
|
total_pages=total_pages,
|
||||||
list_pages=list_pages,
|
list_pages=list_pages,
|
||||||
mylinks=current_app.config.get("MYLINKS"),
|
mylinks=current_app.config.get("MYLINKS"),
|
||||||
copyright=current_app.config.get("COPYRIGHT"),
|
copyright=current_app.config.get("MYCOPYRIGHT"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ def post(slug=None):
|
||||||
menu_items=current_app.config.get("MENU_ITEMS"),
|
menu_items=current_app.config.get("MENU_ITEMS"),
|
||||||
post=current_post,
|
post=current_post,
|
||||||
mylinks=current_app.config.get("MYLINKS"),
|
mylinks=current_app.config.get("MYLINKS"),
|
||||||
copyright=current_app.config.get("COPYRIGHT"),
|
copyright=current_app.config.get("MYCOPYRIGHT"),
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
abort(404)
|
abort(404)
|
||||||
|
@ -77,7 +77,7 @@ def get_all_tags():
|
||||||
tags=tags,
|
tags=tags,
|
||||||
menu_items=current_app.config.get("MENU_ITEMS"),
|
menu_items=current_app.config.get("MENU_ITEMS"),
|
||||||
mylinks=current_app.config.get("MYLINKS"),
|
mylinks=current_app.config.get("MYLINKS"),
|
||||||
copyright=current_app.config.get("COPYRIGHT"),
|
copyright=current_app.config.get("MYCOPYRIGHT"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ def get_posts_by_tag(page=1, tag=None):
|
||||||
total_pages=total_pages,
|
total_pages=total_pages,
|
||||||
list_pages=list_pages,
|
list_pages=list_pages,
|
||||||
mylinks=current_app.config.get("MYLINKS"),
|
mylinks=current_app.config.get("MYLINKS"),
|
||||||
copyright=current_app.config.get("COPYRIGHT"),
|
copyright=current_app.config.get("MYCOPYRIGHT"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -127,5 +127,5 @@ def page(slug=None):
|
||||||
menu_items=current_app.config.get("MENU_ITEMS"),
|
menu_items=current_app.config.get("MENU_ITEMS"),
|
||||||
content_body=page.text,
|
content_body=page.text,
|
||||||
mylinks=current_app.config.get("MYLINKS"),
|
mylinks=current_app.config.get("MYLINKS"),
|
||||||
copyright=current_app.config.get("COPYRIGHT"),
|
copyright=current_app.config.get("MYCOPYRIGHT"),
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,19 +1,18 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
# Настройки блога
|
# Настройки блога
|
||||||
BRAND = "pyproger"
|
BRAND = "блог"
|
||||||
COPYRIGHT = {
|
MYCOPYRIGHT = {
|
||||||
"year": "2023",
|
"year": "2023",
|
||||||
"name": "Сергей Вaнюшкин",
|
"name": "Иванов Иван",
|
||||||
"link": "https://pi3c.ru",
|
"link": "http://yandex.ru",
|
||||||
"city": "г.Нарьян-Мар, Ненецкий А.О.",
|
"city": "г.Москва",
|
||||||
}
|
}
|
||||||
MYLINKS = (
|
MYLINKS = (
|
||||||
{"icon": "fab fa-telegram", "link": "https://t.me/pi3c_nao"},
|
{"icon": "fab fa-telegram", "link": "https://t.me"},
|
||||||
{"icon": "fab fa-vk", "link": "https://m.vk.com/pi3c_nao"},
|
{"icon": "fab fa-vk", "link": "https://m.vk.com"},
|
||||||
{"icon": "fab fa-yandex", "link": "mailto:pi3c@yandex.ru"},
|
{"icon": "fab fa-yandex", "link": "mailto:user@yandex.ru"},
|
||||||
{"icon": "fab fa-github", "link": "https://github.com/pi3c"},
|
{"icon": "fab fa-github", "link": "https://github.com"},
|
||||||
{"icon": "fa fa-gitea", "link": "https://git.pi3c.ru"},
|
|
||||||
)
|
)
|
||||||
POSTS_ON_PAGE = 6
|
POSTS_ON_PAGE = 6
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<!--Grid column-->
|
<!--Grid column-->
|
||||||
<div class="col-lg-3 col-md-6 mb-4 mb-md-0">
|
<div class="col-lg-3 col-md-6 mb-4 mb-md-0">
|
||||||
<h5 class="text-white">pyproger.ru</h5>
|
<h5 class="text-white">{{ menu_title }}.ru</h5>
|
||||||
|
|
||||||
<ul class="list-unstyled mb-0">
|
<ul class="list-unstyled mb-0">
|
||||||
<li>
|
<li>
|
||||||
|
@ -141,10 +141,10 @@
|
||||||
|
|
||||||
<!-- Copyright -->
|
<!-- Copyright -->
|
||||||
<small class="text-center text-body">
|
<small class="text-center text-body">
|
||||||
© {{ copyright.year}}
|
© {% block copyright_year%}{% endblock %}
|
||||||
<a class="link-offset-2 link-underline link-underline-opacity-0 text-white" href="{{ copyright.link }}">{{ copyright.name}}</a>
|
<a class="link-offset-2 link-underline link-underline-opacity-0 text-white" href="{% block copyright_link %}{% endblock %}">{% block copyright_name %}{% endblock %}</a>
|
||||||
<br>
|
<br>
|
||||||
{{copyright.city}}
|
{% block copyright_city%}{% endblock %}
|
||||||
</small>
|
</small>
|
||||||
<!-- Copyright -->
|
<!-- Copyright -->
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -55,3 +55,19 @@
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_year %}
|
||||||
|
{{ copyright.year }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_name %}
|
||||||
|
{{ copyright.name }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_link %}
|
||||||
|
{{ copyright.link }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_city %}
|
||||||
|
{{ copyright.city }}
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -21,3 +21,19 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_year %}
|
||||||
|
{{ copyright.year }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_name %}
|
||||||
|
{{ copyright.name }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_link %}
|
||||||
|
{{ copyright.link }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_city %}
|
||||||
|
{{ copyright.city }}
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -15,3 +15,19 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_year %}
|
||||||
|
{{ copyright.year }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_name %}
|
||||||
|
{{ copyright.name }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_link %}
|
||||||
|
{{ copyright.link }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_city %}
|
||||||
|
{{ copyright.city }}
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -21,8 +21,21 @@
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<a class="link-offset-2 link-offset-3-hover link-underline link-underline-opacity-0 link-underline-opacity-75-hover" href="{{ back_url }}">
|
|
||||||
Назад
|
{% endblock %}
|
||||||
</a>
|
|
||||||
|
{% block copyright_year %}
|
||||||
|
{{ copyright.year }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_name %}
|
||||||
|
{{ copyright.name }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_link %}
|
||||||
|
{{ copyright.link }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block copyright_city %}
|
||||||
|
{{ copyright.city }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in New Issue