Категорія: Програмування

Те, що стосується програмування. Скрипти для роботи, мої проекти, мої нотатки.

Django database питання

Важливі моменти по роботі з базами данних в ORM Django. Якщо існує база данних і її треба підключити до проекту. Треба робити щось схоже на таке: налаштовати підключення бази данних ( підключення default) створити модель бази командою python manage.py inspectdb –database=default скопіювати створену модель до файлу застосунку appname\models.py база  підключена. Цілком можливо, треба буде десь…

Прочитати статтю повністю

Магічні методи (dunder )

Магічні методи це методи, що виконуються без явного виклику(__init__, __add__, __len__, __repr__ та інші). Термін: dunder  = double undescore. Тут опишу те, що використовую або планую використовувати. Як підказку (така собі cheatsheet) __init__(self, par1, par2, …. parN): # використовується для створення властивостей класу. створює властивості об”єкту під час створення. приклад: new_object = Class(par1, par2, ….…

Прочитати статтю повністю

Django: проект для кіно Частина 1

Виникла ідея переробити застосунок, який допомагає робити кіно. Почав з Telegram-Bot та складність почала зростати і прийняв рішення почати спочатку та врахувати особливості та побажання співробітників, хто був дотичний до проекту. Отже, які зміни: вся інформація зберігається в базі даних (розробка:sqlite, продакшен:postgreSQL) зробити WEB-інтерфейс (Django) інтеграція/сумісна робота Django та Telegram-Бота ці зміни спрощують роботу над…

Прочитати статтю повністю

mdadm: Перевірка стану, заміна диску.

Сервер з mdadm Raid6 на Ubuntu 20 диски в масивах треба регулярно перевіряти. Знайшов bash-скрипт і трохи вдосконалив: #!/bin/bash for i in {a..q}; do echo “Disk sd$i” $SN $MD smartctl -i -A /dev/sd$i |grep -E “^ “5”|^”197″|^”198″|”FAILING_NOW”|”Serial”” done Несподівано, на одному з дисків Disk sdq Device Model: HGST HUH721008ALE604 Serial Number: 1SGUPUEZ 5 Reallocated_Sector_Ct 0x0033…

Прочитати статтю повністю

Telegram-bot на python. 4 Структура програми, по-новому перероблене.

Бот, з якого почав своє навчання – виявився досить складним. Прототип працює, але в деяких місцях я “зрізав кути” і при спробі перевести на робочі дані виникла потреба перебудувати (ЗНОВУ!) взаємодію об”єктів. Зрештою, треба частину коду переробити на python-style (бо начитався  книжок та надивився корисного з відосиків). Розпочнемо з простого. Рівні виконання коду. Об”єкти треба…

Прочитати статтю повністю

Python – технології. Що вимагає ринок 07.2020

Для свого розвитку треба розуміти, які навички потрібні програмісту на Python. тут збираю що почув-побачив. Пишуть що усе те що тут є по факту готовий Senior. Тримайтеся міцніше як будете те все читати 🙂 *Сподіваюсь, зрозуміло, вказані навички вони не усі разом потрібні. Все залежить від проекту, для якого синьйора шукають.  В списку літератури є…

Прочитати статтю повністю

Telegram-bot на python. 3 Реалізація роботи з GoogleAPI читаю-пишу

Пишу те, що накодив сам. Важливо: про те, як налаштувати обліковий запис та отримати json-файл для підключення до документів з правами на редагування – то читачам домашнє завдання 🙂 Для роботи створив модуль gstools куди складаю функції, які використовую для читання-запису в таблицю Google. наприклад читання усієї сторінки: def read_from_worksheet(work_book_name, worksheet_name): scope = [‘https://spreadsheets.google.com/feeds’, ‘https://www.googleapis.com/auth/drive’]…

Прочитати статтю повністю

python. Telegram bot conversation

Телеграм вміє з Вами погутарити, якщо його навчити 🙂 Не одразу зрозумів як воно працює. Зараз, трохи почав розуміти. Як зрозумів – запишу а далі зміню-доповню якщо помилявся. Демонструю на прикладі що буде у самому низу сторінки. Точка входу у розмову start_handler повертає статус розмови до якого треба перейти далі (return NAME) розмову припиняємо коли…

Прочитати статтю повністю

Декоратори для роботи в python

В тексті програм для Telegram ботів зустрічаю щось таке (трохи змінив для наочності): ADMINS = [123456, 234567] def restrict(f):     def inner(*args, **kwargs):         update = args[0]         if update and hasattr(update, ‘message’):             chat_id = update.message.chat_id             if chat_id in ADMINS:                 print(‘Доступ адмінам дозволено!’)                 return f(*args, **kwargs)             else:                 print(‘Доступ заборонено!’)…

Прочитати статтю повністю