язык_программирования_python

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
язык_программирования_python [2025/06/16 14:58]
val [FastAPI Uvicorn]
язык_программирования_python [2026/03/20 09:13] (current)
val [Flask Gunicorn]
Line 2: Line 2:
  
   * [[https://​habr.com/​ru/​articles/​277679/​|Пишем shell скрипты на Python и можно ли заменить им Bash]]   * [[https://​habr.com/​ru/​articles/​277679/​|Пишем shell скрипты на Python и можно ли заменить им Bash]]
 +
 +  * [[https://​github.com/​rupertsworld/​frontend-backend|Basic Web Frontend/​Backend Demo]]
 +  * [[https://​code.tutsplus.com/​ru/​using-celery-with-django-for-background-task-processing--cms-28732t|Использование Celery с Django для обработки фоновых задач]]
 ===== Виртуальная среда Python ===== ===== Виртуальная среда Python =====
   * [[https://​blog.sedicomm.com/​2021/​06/​29/​chto-takoe-venv-i-virtualenv-v-python-i-kak-ih-ispolzovat/​|Что такое venv и virtualenv в Python, и как их использовать]]   * [[https://​blog.sedicomm.com/​2021/​06/​29/​chto-takoe-venv-i-virtualenv-v-python-i-kak-ih-ispolzovat/​|Что такое venv и virtualenv в Python, и как их использовать]]
Line 109: Line 112:
 (venv1) :~/pywebd$ #export PYWEBD_PORT=4443 (venv1) :~/pywebd$ #export PYWEBD_PORT=4443
 (venv1) :~/pywebd$ #export PYWEBD_DOC_ROOT=/​var/​www/​html/​ (venv1) :~/pywebd$ #export PYWEBD_DOC_ROOT=/​var/​www/​html/​
-(venv1) :~/pywebd$ #​PYWEBD_PORT=4443 PYWEBD_DOC_ROOT=/​var/​www/html/ python app.py+ 
 +(venv1) :~/pywebd$ #​PYWEBD_PORT=4080 PYWEBD_DOC_ROOT=/​var/​www/​ python app.py
  
 (venv1) :~/pywebd$ python app.py (venv1) :~/pywebd$ python app.py
Line 117: Line 121:
 (venv1) :~/pywebd$ #pip install gunicorn (venv1) :~/pywebd$ #pip install gunicorn
 (venv1) :~/pywebd$ #gunicorn app:app --bind 0.0.0.0:​8000 (venv1) :~/pywebd$ #gunicorn app:app --bind 0.0.0.0:​8000
 +(venv1) :~/pywebd$ #cat gunicorn.conf.py
 +</​code><​code>​
 +import os
 +import configparser
 +
 +myconfig = configparser.ConfigParser()
 +myconfig.read('/​etc/​pywebd/​pywebd.conf'​)
 +
 +if '​PYWEBD_PORT'​ in os.environ: pywebd_port = os.environ.get('​PYWEBD_PORT'​)
 +else: pywebd_port = myconfig['​default'​]['​Listen'​]
 +
 +#certfile = "/​etc/​pywebd/​pywebd.crt"​
 +#keyfile = "/​etc/​pywebd/​pywebd.key"​
 +
 +bind = '​0.0.0.0:'​ + pywebd_port
 +</​code><​code>​
 +(venv1) :~/pywebd$ # gunicorn -c gunicorn.conf.py app:app
 </​code>​ </​code>​
  
Line 200: Line 221:
   * [[https://​www.geeksforgeeks.org/​python-find-dictionary-matching-value-in-list/​|Find dictionary matching value in list - Python]]   * [[https://​www.geeksforgeeks.org/​python-find-dictionary-matching-value-in-list/​|Find dictionary matching value in list - Python]]
   * [[https://​docs-python.ru/​tutorial/​vstroennye-funktsii-interpretatora-python/​funktsija-next/​|Функция next() в Python, следующий элемент итератора]]   * [[https://​docs-python.ru/​tutorial/​vstroennye-funktsii-interpretatora-python/​funktsija-next/​|Функция next() в Python, следующий элемент итератора]]
 +
 +==== Пример 1 ====
 <​code>​ <​code>​
 gate# apt install python3-xmltodict/​stable gate# apt install python3-xmltodict/​stable
Line 235: Line 258:
 </​code>​ </​code>​
  
 +==== Пример 2 ====
 +<​code>​
 +# cat /​usr/​local/​bin/​asterisk.chansip.discovery.py
 +</​code><​code>​
 +#​!/​usr/​bin/​env python3
 +
 +import subprocess, io, json
 +
 +result=[]
 +
 +proc = subprocess.Popen('/​usr/​sbin/​asterisk -x "sip show users" | tail -n +2 | cut -d" " -f1', stdout=subprocess.PIPE,​ shell=True)
 +for line in io.TextIOWrapper(proc.stdout,​ encoding="​utf-8"​):​
 +  #​print(line.rstrip())
 +  s={}
 +  s["​{#​CHANNAME}"​]="​SIP/"​+line.rstrip()
 +  result.insert(1,​s)
 +print(json.dumps(result))
 +</​code>​
 +
 +Вариант от DeepSeek
 +
 +<​code>​
 +# cat /​usr/​local/​bin/​asterisk.chansip.discovery.ds.py
 +</​code><​code>​
 +#​!/​usr/​bin/​env python3
 +
 +import subprocess
 +import json
 +
 +# Запускаем команду и сразу получаем вывод
 +output = subprocess.check_output(
 +    '/​usr/​sbin/​asterisk -x "sip show users" | tail -n +2 | cut -d" " -f1',
 +    shell=True,
 +    text=True
 +)
 +
 +# Формируем список словарей в одну строку
 +result = [{"​{#​CHANNAME}":​ f"​SIP/​{line.strip()}"​} for line in output.splitlines() if line.strip()]
 +
 +# Выводим результат в формате JSON
 +print(json.dumps(result))
 +</​code>​
 ===== Zabbix API приложение ===== ===== Zabbix API приложение =====
  
язык_программирования_python.1750075106.txt.gz · Last modified: 2025/06/16 14:58 by val