Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3462 posts.

Центр помощи » GigaChat » вчера 13:18:23

добрый день помогите запустить чат от сбера у меня выходит ошибка Ошибка: не удалось получить токен/

https://developers.sber.ru/docs/ru/gigachat/api/authorization

Django » Изменение данных столбца в django-tables2 » Ноя. 24, 2023 14:37:52

Всем привет,

никак не могу вывести ссылки на страницу в столбце таблицы, сделанной с помощью django-tables2…
У кого-то есть опыт или ссылка, где есть работающий код? Документация не помогла…

Я из таблицы Gost с двумя текстовыми полями ('name', ‘short_name’) создаю класс GostTable.
Он выводит таблицу, все нормально. Но вместо имени name я хочу сформировать и вывести ссылку на страницу с подробностями,
которая формируется с помощью get_absolute_url() .
Что для этого нужно добавить в этот класс?

 class GostTable(tables.Table):
    class Meta:
        model = Gost
        template_name = "django_tables2/bootstrap.html" 
        fields = ('name', 'short_name')

Флейм » Полный комплекс дизайнерских услуг и программирования » Ноя. 17, 2023 05:06:24

Дизайн

Видео
- Рекламные ролики
- КРЕО под гемблу, крипту, нутру, товарку
- Обзоры сайтов/игр/проектов
- Промо-ролики компаний
- Анимационные видео
- 3D анимации
- Дудл-видео
- Озвучка (рус., англ., испан., итал., португ. языки), видеоотзывы

Дизайн
- Логотипы
- Аватарки
- Стикеры
- АРТ работы
- NFT
- UX/UI дизайн
- Объекты, персонажи 2D/3D

Оформление
- Лендинги
- Соц.сети (Ютуб, Инста, ФБ, ВК)
- Приложения
- Стримы
- Форумные темы


Программирование

Боты (разработка, доработка)
- Магазины
- Инвестиции
- Игры
- Обменники и т.д.

Web-сайты (разработка, доработка)
- Лендинги
- Копия сайта
- Одностраничники
- Интернет-магазины
- Доработка сайта
- Обменники
- Платформы
- Браузерные игры

Desktop (разработка, доработка)
- Парсеры
- Софты автоматизации
- Авторегеры
- Скрипты
- Различные программы

Арбитражные задачи
- Работа с трекерами Keitaro и т.д.
- Вайты
- Работа с клоаками
- Создание ссылок для залива
- Интеграции по API/ПП
- Интеграции с ПП

Приложения (разработка, доработка)
- IOS
- Android

Python, Laravel, React Native, C, C++, C#, Go, PHP, CSS, JS, Java, Ruby, Swift, Node.js


Контакты:
Telegram: @Svetssa

Центр помощи » Помогите Решить задачу Python Yandex Education » Ноя. 15, 2023 12:17:18

Рисуем треугольник
Напиши функцию draw_triangle(), чтобы она рисовала треугольник по образцу из поля «Вывод».
Лишних пробелов справа не ставь.

Python для новичков » Отправка формы fastapi  » Ноя. 14, 2023 09:08:37

Доброе утро!
Пытаюсь отправить форму в шаблоне есть форма
 <form action="/upload" method="post" enctype="multipart/form-data">
                          <label for="pdfformmail{{indexfile}}">Загрузить</label>
                          <input enctype type="file" onChange=selectFile(this)  name="pdfformmail" id="pdfformmail{{indexfile}}">
                        </form>

в файле app.py
 from fastapi import FastAPI, Request,UploadFile, File
import webbrowser
.....
@app.post("/upload")
def upload_file(file: UploadFile):
      return file

При запуске скрипта падает со словами
RuntimeError: Form data requires “python-multipart” to be installed.
You can install “python-multipart” with:

pip install python-multipart

При этом python-multipart установлен
……
pydantic_core 2.6.3
pyinstaller 6.0.0
pyinstaller-hooks-contrib 2023.9
python-multipart 0.0.6
setuptools 68.2.2
sniffio 1.3.0
starlette 0.27.0
…….

В чем может быть ошибка?

Data Mining » vsekuhnitut.ru - кухни, прихожие, гардеробные, шкафы и другая корпусная мебель от производителя на заказ по индивидуальным размерам » Ноя. 9, 2023 05:37:18


В нашем мебельном магазине вы можете приобрести:
• Кухни и готовые сеты
• Шкафы и шкафы-купе
• Прихожие
• Мебель для спальни
• Гардеробные
• Прачечные
• Гостиные в современном стиле
• Детские комнаты
• Кабинеты
• Журнальные или кухонные столики
• Мебель из мрамора и гранита
• Фасады и столешницы для кухни
• Корпуса
• Наполнение

Преимущества нашего сервиса:
• Быстрые сроки изготовления
• Широкий выбор мебели
• Постоянное пополнение каталога
• Выгодные цены на рынке

Адрес магазина, каталог и другие контакты у нас на сайте: vsekuhnitut.ru

Data Mining » rankstore.net - cs2 boost, boost faceit, premier, matchmaking in cs2. » Ноя. 9, 2023 05:37:03


Constant training, analysis of player demos, study of spreads, grenades do not give the desired result?

BOOST SERVICE R
ankStore will help you with this:
— The booster team consists of 4k+ ELO players on the faceit and 20,000+ rating in the premier;
— The service has a faceit, premier, matchmaking calculator;
— Possibility of boost WITHOUT account transfer;
— Analysis of maps and demos

THERE IS A 20% DISCOUNT ON YOUR FIRST ORDER

You can order here:
rankstore.net

Data Mining » rankstore.org - буст кс2, буст премьер, фейсит, матчмейкинг в кс2. » Ноя. 9, 2023 05:36:47


Постоянные тренировки аима, разборы демок про-игроков, изучение раскидок гранат не дают должного результата?

БУСТ-СЕРВИС RankStore поможет тебе с этим:
— Команда бустеров состоит из 4k+ ELO игроков на фейсите и 20 000+ рейтинга в премьере;
— На сервисе имеется калькулятор фейсит, премьер, матчмейкинг;
— Возможность буста БЕЗ передачи аккаунта;
— Также разбор карт и демок.

Заказать буст можно:
Сайт – rankstore.org
TG – @rankstorecs
VK - vk.com/rankstorecs

Data Mining » Dolphex.io - обмен BTC, ETH, USDT, USDC, Сбербанк, Тинькофф RUB, Банки » Ноя. 9, 2023 05:36:28

Надежный обмен самых популярных электронных валют на выгодных условиях.

Направления обмена:
Bitcoin
Bitcoin BEP20
Ethereum
USDT (TRC, BEP20),
USDC (TRC)
Сбербанк
Тинькофф
Киви
СБП Карты МИР
Visa/Mastercard RUB

Преимущества нашего сервиса:
• Свой телеграм канал + закрытая группа;
• Широкий выбор валют;
• Постоянные обновления и улучшения сервиса;
• Выгодная программа лояльности.

Наши контакты:
• Наш сайт: https://dolphex.io/
• Телеграм: https://t.me/dolphex
• E-mail: info@dolphex.io
• ВКонтакте: https://vk.com/dolphex

Python проекты » Ищу исполнителя, который запустит Yolov8 на TensorRT » Окт. 20, 2023 16:15:00

Рабочий проект с Yolov8, обученные модели в формате .pt и запускаются с pyTorch + GPU. Поиск объектов в реальном времени после граба экрана. Есть конвертация моделей с .pt в .engine. Скорость работы ~115 кадров в секунду. Решил увеличить скорость и перейти с PyTorch на TensorRT.

Задача: запустить модели формата .engine с помощью TensorRT для Yolov8.
Работу оплачу через любой фриланс (fiverr, kwork и т.д.) или напрямую вам после выполнения.
Связаться можно в телеграм - https://t.me/Kirill_kio

Python для новичков » Критерий Манна-Уитни для экспериментальных данных » Окт. 16, 2023 02:04:45

Рассчитать критерий Манна-Уитни для экспериментальных данных.

Дано. Две таблицы с одинаковым количеством строк и разным количеством столбцов T1 И T2. В таблице T1 хранятся результаты экспериментов в контрольной группе, в T2 - результаты экспериментальной группы.

В каждой из строк хранятся данные о разных измерениях

Найти. Критерий Манна-Уитни для каждой пары строк из T1 и T2. Сделать вывод о результативности эксперимента. Например, для строк T1 и T2

Для решения задачи написать собственную функцию.

Расчет критерия Манна-Уитни можно посмотреть например здесь: https://studopedia.net/13_74222_podschet-kriteriya-U-manna-uitni.html

Автоматизация бизнеса » Пишу скрипты для BAS только на запросах » Сен. 15, 2023 21:26:44


Скрипт для накрутки рефералов в Android-приложении

Скрипт зарегистрировал 49000 аккаунтов на сайте менее, чем за 2 часа.

Пишу BAS-скрипты на запросах для несложных сайтов и Android-приложений.​

Качественная разработка проектов для автоматизации действий в браузере, приложениях и др. парсеры, регеры, грабберы, чекеры, спамеры и. т. д.
Загрузка файлов, фотографий на сайты, хостинги, фотостоки.
Абуз Окея, Пятерочки, Магнита, Ашана, Магнита, аирдропов и др. акций
Накрутка банеров, рекламных объявлений, сокращённых ссылок.
Чекер SMS и капча-сервисов, европейских и американских банков, других форумов, интернет-магазинов, где нужно подобрать пароль.
- Регистраторы. Боты для регистрации на различных сайтах (фрихостинги, форумы, почтовые сервисы, соцсети, дедики и т.д). Создание аккаунтов в промышленных масштабах (с автоматическим распознаванием капчи и вводом подтверждения кода из SMS).

- Постеры. Боты для постинга (постинг на доски объявлений, наполнение сайтов контентом, загрузка видео, картинок, размещение комментариев и. т.д ).

- Парсеры. Боты для сбора, отслеживания и анализа информации с различных интернет ресурсов в автоматическом режиме.

- Боты для социальных сетей (программы для smm на заказ). Накрутка лайков, приглашение в группы, парсинг пользователей по критериям, отправка личных сообщений, наполнение групп и. т.п.

Автоматизировать можно вообще все, что вы делаете вручную в браузере.
Поддержка:
- многопоточность
- прокси HTTPs / SOCKS5
- генерация отпечатков браузера
- генерация имени, фамилии и других данных
- спинтакс - генератор уникального текста, пример: {Привет|Здравствуй|Добрый день}
- уникализация изображений
- подгрузка UserAgent и других заголовков
- интеграция по API с SMS сервисами (сервисы распознавания капчи)
- интеграция по API с другими сервисами и сайтами
- оповещения в Telegram
- другие задачи связанные со входами в аккаунт и выполнением желаемых действий
- и многое другое
Работаю на честных условиях без предоплаты. Для очень простых сайтов - напишу скрипт бесплатно!

Для написания бота, нужен сайт и желательно видео с порядком действий, чтобы я эти действия мог прописать в боте, но если на сайте есть Cloudflare , то на запросах (POST/GET) не выйдет написать бота, на эмуляции не пишу(медленно слишком).

По всем вопросам пишите: Telegram ༺Leͥgeͣnͫd༻ ᴳᵒᵈ или T_Condor

Я НЕ пишу скрипты под десктопные приложения.
Я НЕ пишу ботов для Telegram.
Я НЕ пишу чекеры для СНГ банков.
Я НЕ пишу скрипты для сайтов, на которых присутствует Cloudflare



Скрипт скачивает картинки-мемы в папку с сайта (в итоге скачано более 41000 мемов)

Сокращатель ссылок bit.ly. Создание множества редиректов.

Python для новичков » Всплывающее окно в калькуляторе на pyqt6 » Сен. 14, 2023 20:47:15

Сейчас учу PyQt по этому курсу https://www.youtube.com/playlist?list=PL0lO_mIqDDFXeDkOLHmEsL_HAEhw4-xDX . На 4 уроке мужик делает всплывающие окно при ошибке. У меня красным подчеркивало названия кнопок для этого окна и понял, что ошибка из за разницы pyqt5 (гайд) и pyqt6 (с которым я работаю). https://ru.stackoverflow.com/questions/1400558/setstandardbuttonsqmessagebox-cancel-%d0%b2-pyqt6?noredirect=1&lq=1 По аналогии с этой ошибкой пытался исправить проблему, но всплывающие окно все равно не появляется. Прошу, помогите. Заранее извиняюсь, за глупый вопрос, за непонятную формулировку и тд. Буду рад, если подробно объясните в чем не прав. Вот код:

(Часть кода, где показывается результат счета, а всплывающее окно, должно появляться когда после вывода результата, повторно нажимается ровно)
def results(self):
if not self.is_equal:
res = eval(self.label.text())
self.label.setText(“Результат: ” + str(res))
self.is_equal = True
else:
error = QMessageBox()
error.setWindowTitle(“ОШИБКА”)
error.setText(“Сейчас это действие выполнить нельзя”)
error.setIcon(QMessageBox.setIcon(Warning))
error.setStandardButtons(QMessageBox.StandardButton.Ok|QMessageBox.StandardButton.Cancel)

error.exec_()

Django » Добавление записи в таблицу "Django" » Сен. 7, 2023 08:47:56

Добрый день! Пишу первый web проект на Django
Пытаюсь реализовать справочник стран и городов в них
Есть 2 модели:

 class Strana(models.Model): # 1 модель
    name_s = models.CharField('Наименование', max_length=70)
    def get_absolute_url(self): 
        return reverse('spr_strana')
    def get_UpdateUrl(self):
        return reverse('update_str_strana',kwargs={'pk':self.pk})
    
    def get_DeleteUrl(self):
        return reverse('delete_str_strana',kwargs={'pk':self.pk})
class Gorod(models.Model): #2 модель
   id_strana=models.ForeignKey(Strana, on_delete=models.CASCADE)
   name_g = models.CharField('Наименование', max_length=70)

Вопрос: после того как я добавил запись в модель strana, как мне добавить запись в модель gorod к определенной записи модели strana?

Python для новичков » Игра на kivy python » Авг. 30, 2023 06:31:48

Доброго дня. В целях самообучения пишу игрушку.
Использую pycharm на windows 10
Цель игры погасить кнопку на реакцию.
Проблема: после нескольких переключений поле заполняется и дальше нужно перезапускать.

Вот код:
from kivy.clock import Clock
from kivy.metrics import dp
from kivy.uix.button import Button
from random import randint
from kivymd.app import MDApp
from kivymd.uix.menu import MDDropdownMenu
from kivymd.uix.snackbar import Snackbar
from kivymd.uix.gridlayout import MDGridLayout
from kivymd.uix.toolbar import MDTopAppBar

class Catch(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.change_random_button = None

def build(self):
self.theme_cls.primary_palette = “Orange”
self.theme_cls.theme_style = “Light”

self.gl = MDGridLayout(rows=2)
self.tb = MDTopAppBar(title=“SPEED REACTION”, anchor_title=“left”, size_hint_y=None, height=.5, specific_text_color=“white”,
right_action_items=[])
self.menu_items = [
{
“viewclass”: “OneLineListItem”,
“text”: “Новая игра”,
“height”: dp(35),
“on_release”: self.file_manager_open,
},
{
“viewclass”: “OneLineListItem”,
“text”: “Продолжить”,
“height”: dp(35),
“on_release”: self.menu_seve,
},
{
“viewclass”: “OneLineListItem”,
“text”: “Настройки”,
“height”: dp(35),
“on_release”: self.menu_delet,
},
{
“viewclass”: “OneLineListItem”,
“text”: “Закрыть”,
“height”: dp(35),
“on_release”: self.on_menu_close,
}
]
self.menu = MDDropdownMenu(caller=self.tb, items=self.menu_items, width_mult=4)

self.buttons =
self.grid = MDGridLayout(cols=4, padding5, 10, 5, 5), spacing=2)

# Создание и добавление кнопок на сетку
for i in range(16):
button = Button(on_release=self.button_pressed)
self.grid.add_widget(button)
self.buttons.append(button)

# Загасить случайную кнопку
self.buttons.background_normal = ‘'
self.count = 0
Clock.schedule_interval(self.change_button, 0.5)

self.gl.add_widget(self.tb)
self.gl.add_widget(self.grid)

return self.gl

def callback(self, button):
self.menu.open()

def menu_callback(self, text_item):
self.menu.dismiss()
Snackbar(text=text_item).open()

def button_pressed(self, instance):
if instance.background_normal == ’':
instance.background_normal = ‘atlas/data/images/defaulttheme/button’
self.buttons.background_normal = ''

def change_button(self, dt):
self.buttons.background_normal = ‘'
for button in self.buttons:
if button.background_normal == ’':
button.background_normal = ‘atlas/data/images/defaulttheme/button’
self.count += 1
if self.count >= 3:
return
break

def file_manager_open(self):
print(“open”)

def menu_seve(self):
print(“Save as”)

def menu_delet(self):
print(“removal”)

def on_menu_close(self, *args):
self.stop()

Catch().run()
Буду благодарен за пинок в нужную сторону.

Network » DNS Сканирование » Авг. 21, 2023 14:12:44

Здравствуйте когда я запускаю dns сканер из скрипта python то всё хорошо, но когда я запускаю его как файл exe то вылезает сообщение скриншот которого я прикрепил, скажите пожалуйста в чём причина ошибки и как её исправить? Если я сделал что-то не так или не так написал, заранее извиняюсь.

 import re
import socket
from ipaddress import ip_network, ip_address
import dns
from colorama import Fore
from colorama import init
from dns import resolver
from requests import get, exceptions
import pyfiglet
shrft = pyfiglet.figlet_format("DNS-Scan-blacklist")
print(shrft)
init()
# проверка адреса в диапазоне cloudflare
def ip_in_range(ip, addr):
    if ip_address(ip) in ip_network(addr):
        return True
    return False
# загрузка списка диапазонов адресов cloudflare
# запуск функции проверки ip-адреса
def cloudf_detect(ip):
    list_addr = ["104.16.0.0/12"]
    url = 'https://www.cloudflare.com/ips-v4'
    req = get(url=url)
    for adr in req.text.split("\n"):
        list_addr.append(adr)
    for addr in list_addr:
        detect = ip_in_range(ip, addr)
        if detect:
            return True
    return False
# получение внешнего ip-адреса компьютера
def public_ip():
    try:
        return get('https://api.ipify.org/').text
    except exceptions.ConnectionError:
        return '127.0.0.1'
# загрузка списка DNSBL, получение информации о наличии адреса в списках
def dns_bl_check(ip):
    print(Fore.YELLOW + '\n- Проверка черных списков\n')
    bad_dict = dict()
    req = get('https://raw.githubusercontent.com/evgenycc/DNSBL-list/main/DNSBL')
    read = req.text.splitlines()
    for serv in read:
        req = f"{'.'.join(reversed(ip.split('.')))}.{serv.strip()}"
        try:
            resolv = dns.resolver.Resolver()
            resolv.timeout = 5
            resolv.lifetime = 5
            resp = resolv.resolve(req, 'A')
            resp_txt = resolv.resolve(req, 'TXT')
            print(Fore.RED + f'{serv.strip():30}: [BAD]')
            pattern = '(?:https?:\/\/)?(?:[\w\.]+)\.(?:[a-z]{2,6}\.?)(?:\/[\w\.]*)*\/?'
            find = re.findall(pattern, str(resp_txt[0]))
            if len(find) == 0:
                find = ['No address']
            bad_dict.update({serv.strip(): f'{resp[0]} {find[0]}'})
        except dns.resolver.NXDOMAIN:
            print(Fore.GREEN + f'{serv.strip():30}: [OK]')
        except (dns.resolver.LifetimeTimeout, dns.resolver.NoAnswer):
            continue
    if len(bad_dict) > 0:
        len_str = len(f'IP-АДРЕС: "{ip.upper()}" ОБНАРУЖЕН В ЧЕРНЫХ СПИСКАХ')
        print(Fore.BLUE + f'\nIP-АДРЕС: {ip.upper()} ОБНАРУЖЕН В ЧЕРНЫХ СПИСКАХ\n{"*"*len_str}')
        for bad in bad_dict:
            print(f' - {Fore.YELLOW + bad:30} : {Fore.RESET +bad_dict[bad]}')
    else:
        print(Fore.GREEN + '\n[+] IP-адрес в черных списках не обнаружен')
# получение пользовательского ввода
# запуск проверки на принадлежность адреса к cloudflare
# запуск проверки адреса в DNSBL
def main():
    print(Fore.CYAN + f'\n- Ваш внешний IP-адрес: {public_ip()}')
    addr_input = input('- Введите IP-адрес или домен для проверки\n  Для выхода введите "x"\n  >>> ')
    if addr_input.lower() == "x":
        exit(0)
    ip = ''
    try:
        ip = socket.gethostbyname(addr_input)
    except socket.gaierror:
        print(Fore.RED + '\n - Не удалось получить IP-адрес')
        exit(0)
    if cloudf_detect(ip):
        print(Fore.RED + f'\n[!] ВНИМАНИЕ! Обнаружен адрес Cloudflare: {ip}')
    dns_bl_check(ip)
if __name__ == "__main__":
    main()

Python для новичков » Изменить размер и положение окна Pygame » Авг. 20, 2023 10:59:07

Всех приветствую!

Как можно изменить положение на экране и размер окна (Pygame) после его создания, задавая новые координаты и размер окна при выполнении скрипта.

Спасибо.

Python для новичков » ВПР на Python » Авг. 7, 2023 15:14:20

Добрый!

У меня возникла такая проблемка:
Есть DF в Pandas, со столбцами: date, city, weather, latitude, longitude
Есть второй DF со столбцами: date, city, code, person

Нужно объединить их по столбцу city и date. Я использую код:

 df3 = pd.merge(df1,
 df2,
 on =['date','city'],
 how ='left')

Соединение по времени идёт, также как и город, но, почему-то не на всех строчках.
df3 выдает такой результат:

2023-06-29 | Moscow | 27 | Leonid
2023-06-30 | Kazan | 28 | Olya
2023-06-30 | Chelny | 31 | -

хотя во втором DF, указывается, что в такую дату погоду указывал Leonid. Если несколько записей на одного человек, он не цепляется. Почему?

Python для новичков » Интеграция QtDesigner в PyCharm » Авг. 5, 2023 08:40:24

Приветствую Вас друзья!!!
Пожалуйста подскажите что я не правильно делаю.
Недавно я начал изучать PyQt5 и вся загвостка у меня вышла в QtDesigner никак не могу его интегрировать в PyCharm. Расскажу по подробнее
1) Настройках в разделе Project book - Python interpreter, я установил pyqt5-tools
2) Далее в разделе: Tools - External Tools я добавил две настройки Указав название и путь к самому файлу.
Но нечего не получается. Скриншот внизу

Флейм » Аренда виртуальных и выделенных серверов по всему миру » Июль 18, 2023 17:23:53



Аренда виртуальных и выделенных серверов по всему миру
Мы предоставляем услуги аренды виртуальных и выделенных серверов (дедиков) по всему миру с доступностью во множестве стран: Австрия, Великобритания, Германия, Гонконг, Греция, Дания, Ирландия, Испания, Италия, Канада, Латвия, Литва, Нидерланды, Норвегия, ОАЭ(Арабские Эмираты), Португалия, Россия, США, Турция, Швейцария, Швеция, Украина, Финляндия, Франция, Эстония.

Преимущества работы с нами:
- Полностью автоматическая выдача серверов
Получи виртуальный сервер за пару минут, никакого ожидания дополнительно не потребуется.
- Доступны VPS, VPS Linux, VPS Windows, VPS для любых задач, выделенные серверы
Огромный список серверов с виртуализацией KVM под любые нужды нашего клиента. Всегда готовы помочь с разрешением любого вопроса через техническую поддержку.
- Разрешен любой софт работающий с прокси
Никакого ограничения на использование прокси у нас не существует!
- Лучшие высокоскоростные серверы/дедики
Можете убедиться самостоятельно в правдивости наших слов, арендуйте сервер на сутки и вы точно останетесь!
- 28 дата центров по всему миру и сотрудничество с 25 странами
Список будет продолжать дополняться, будут открываться новые локации. Уже сейчас некоторые дц предлагают нам сотрудничество самостоятельно.
- Простая и понятная реферальная система - получайте от 10% с каждого клиента
Выгодно для всех - Никаких сложных и замороченных формул, просто получайте 10% с каждого клиента.
- Аукцион серверов, где Вы сможете за минимальную стоимость приобрести выделенный сервер, а с удобным фильтром параметров подобрать подходящую конфигурацию будет ещё проще!
Мы перенимаем опыт непосредственно у наших европейских партнеров, что делает нашу компанию более оптимизированной и стабильной среди конкурентов.

Дополнительные услуги:
- Серверы с GPU, чего нет у многих хостеров
- Защита от DDoS атак
- Регистрация доменов
- Аренда сетей IPv4 или IPv6 для размещения проектов
- Дешевый веб-хостинг

Наш uptime говорит сам за себя, убедиться можно посетив страницу аптайм сервисов 4vps.
Кроме того, мы предоставляем полностью описанное API, позволяющее интегрировать наши услуги в ваш проект.
Партнерство с нами теперь еще проще благодаря нашему API - https://4vps.su/page/api.
А также вы можете воспользоваться удобным телеграм ботом для быстрого заказа серверов - @FourServer_bot.

https://vk.com/fourvps
@FourServer
@four_su