TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример). Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать? В Django по умолчанию есть готовая функция slugify для таких случаев. Но я её никогда не использую. Почему? Потому что её недостаточно! Приведём пример >>> from django.utils.text import slugify >>> slugify('This is a Title') 'this-is-a-title' Пока всё отлично >>> slugify('This is a "Title!"') 'this-is-a-title' Спец символы удалились, всё хорошо. >>> slugify('Это заголовок статьи') '' Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить >>> slugify('Это заголовок статьи', allow_unicode=True) 'это-заголовок-статьи' Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте. Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою. Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку: 🔸1. Исходный текст: >>> text = 'Мой заголовок №10 😁!' Взял специально посложней со специальными символами. 🔸2. Транслит Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги. from unidecode import unidecode >>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山") 'N S (r) u P 1/4 Yue Shan' Очень крутая библиотека, советую👍 В нашем случае получаем такое преобразование: >>> text = unidecode(text) >>> print(text) 'Moi zagolovok No. 10 !' Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы. А еще наш код уже поддерживает любой язык, будь то хинди или корейский. 🔸4. Фильтр символов Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона. >>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text) >>> print(text) 'Moi_zagolovok_No_10_' Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_". 🔸5. Slugify Осталось удалить лишние символы по краям и сделать нижний регистр >>> text = text.strip('_').lower() >>> print(text) 'moi_zagolovok_no_10' Получаем отличный slug! 😎 🌎 Полный код в виде функции. ______________ PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию. #libs#tricks#django

Резултати

Пронајдени 11 слични објави

Пребарај: #curl

当前筛选 #curl清除筛选
infosecurity

@tg_infosec · Post #2939 · 14.02.2025 г., 16:34

📚 Everything curl. • Очень объемное руководство по работе с curl'ом, которое актуализируют еще с начала 2015 года и по сей день. Книга является бесплатной, а вклад в её развитие внесли десятки авторов: https://curl.haxx.se/book.html ➡️ Репозиторий: https://github.com/curl/everything-curl ➡️ Скачать книгу в PDF или ePUB. #curl

Hashtags

djangoproject

@djangoproject · Post #303 · 19.04.2017 г., 19:43

https://curl.haxx.se/libcurl/c/example.html These files are intended as examples only. In the interest of simplicity and clarity, they might not include proper error handling and might produce compiler warnings on some platforms. Real-world applications should pay more attention to these issues. #cURL

Hashtags

djangoproject

@djangoproject · Post #302 · 19.04.2017 г., 19:38

http://www.angryobjects.com/2011/10/15/http-with-python-pycurl-by-example/ A colleague of mine recently remarked something along the lines of “whenever I need to do HTTP client stuff in any language, I usually go look for #cURL bindings straight away”, and I’m starting to agree on that one. HTTP is hard to do right, and cURL has a track record of doing HTTP right. If you don’t know what cURL is, take a look at http://curl.haxx.se

Hashtags

Sliverkissの废弃文化研究所

@sliverkiss_blog · Post #213 · 23.11.2023 г., 10:57

▎Curlconverter Convert cURL commands into code Transpile curl commands into C#, ColdFusion, Clojure, Dart, Elixir, Go, HTTPie, Java, JavaScript, Kotlin, MATLAB, Objective-C, OCaml, PHP, PowerShell, Python, R, Ruby, Rust, Swift, Wget, Ansible, HAR, HTTP or JSON. 在线转换: 点击链接 项目地址: 点击链接 #convert#curl

DOFH - DevOps from hell

@dofh_ru · Post #3207 · 11.10.2023 г., 19:48

Curl 8.4.0: разработчик признался в допущенных ошибках и выпустил исправления ✖️ Новая версия curl устраняет две отдельные уязвимости: CVE-2023-38545 и CVE-2023-38546, которые затрагивают как libcurl, так и curl. ✖️ Первая уязвимость представляет из себя ошибку переполнения буфера кучи, которая может привести к повреждению данных и даже выполнению произвольного кода. Вторая уязвимость связана с инъекцией cookie и затрагивает только libcurl. ✖️ Даниэль Стенберг признал, что подобные ошибки в curl не существовали бы, если бы инструмент был написан на более безопасном языке программирования с большим объёмом памяти, а не на устаревшем языке C. #curl#безопасность#уязвимости@SecLabNews

infosecurity

@tg_infosec · Post #2801 · 24.12.2024 г., 08:30

👨‍💻 Mastering the curl command line. • Почти 4 часа обучения работе с curl. Напомню, что этот инструмент популярен в сфере автоматизации и скриптов благодаря широкому диапазону функций и поддерживаемых протоколов. • По ссылке ниже вы можете найти тайм коды, что позволит изучить материал в более удобном формате. ➡️https://youtu.be/V5vZWHP-RqU #curl#Курс#Видео#Eng

AIGC

@aigcrubbish · Post #116 · 31.12.2025 г., 03:07

Stenberg: No strcpy either curl 作者 Daniel Stenberg 在其博客中宣布,项目将禁止使用 strcpy() 函数。 主要原因是 strcpy() 在复制字符串时,既不指定目标缓冲区的大小,也不指定源字符串的长度,这可能导致缓冲区溢出等安全问题。 为了确保安全检查与复制操作不可分离,curl 项目引入了一个新的字符串复制替换函数。该函数需要四个参数:目标缓冲区、目标缓冲区大小、源缓冲区以及源字符串长度。只有在确认复制操作和字符串终止符都能安全放入目标缓冲区时,才会执行复制。 这一变更是 curl 项目持续强化代码安全、消除潜在风险努力的一部分。 原文链接:https://daniel.haxx.se/blog/2025/12/29/no-strcpy-either/ #网络安全#编程#C语言#curl #AIGC Read more

AIGC

@aigcrubbish · Post #66 · 29.08.2025 г., 16:21

[$] The challenge of maintaining curl 在2025年欧洲开源峰会上,curl 维护者 Daniel Stenberg 在仅有的15分钟演讲中,分享了项目维护面临的挑战。与其他开源项目类似,curl 的维护压力日益增加,问题似乎越来越严重。 原文链接:https://lwn.net/Articles/1034966/ #开源维护#curl#技术挑战 #AIGC Read more

AIGC

@aigcrubbish · Post #155 · 27.01.2026 г., 01:35

Stenberg: The end of the curl bug-bounty program curl 项目创始人 Daniel Stenberg 宣布,该项目将于 2026 年 1 月 31 日正式结束其自 2019 年 4 月开始的漏洞赏金计划。 他在博客中解释了做出这一决定的主要原因: 1. **处理低质量报告耗费巨大精力**:大量无意义的提交(尤其是 AI 生成的“垃圾”报告)在管理和证伪上消耗了团队大量时间和心理能量,却毫无贡献。 2. **部分报告者动机不良**:许多安全报告者以恶意态度提交报告,极力将普通问题扭曲为严重漏洞,却很少主动贡献代码修复或与团队长期合作改进 curl。 3. **不良趋势的结合**:AI 生成的垃圾报告、人类报告者质量下降、以及报告者更倾向于“找茬”而非真正帮助项目,这三种趋势共同促使了该决定。 Stenberg 强调,他仍然期待“最好、最受重视的安全报告者”在发现安全漏洞时继续通知项目,但官方赏金计划将终止。 原文链接:https://lwn.net/Articles/1055996/ #信息安全#开源项目#漏洞赏金#curl #AIGC Read more

djangoproject

@djangoproject · Post #425 · 28.08.2017 г., 03:37

#AI#Artificial_Intelligence #aiohttp #AngularJS #API #AWS #asyncio #audio #automated_testing #automation #atexit #BeeWare #button #client #concurrency #Coroutine #cron #curl #data_analysis #data_mining #data_processing #database #Deep_Learning #Debian #decorator #dict #dispatch #django #django_cms #dropdownbox #Docker #event #Firefox #form #Generator #GeoDjango #git #Google #GPU #Gym #learn #Image_processing #intelligence #input #IOT #lambda #learn #lists #machine_learning #Magenta #map #Metaprogramming #Micro_services #mind #monitoring #MongoDB #Mozilla #Multipart #multi_touch_apps #multiprocessing #Nodes #NoSQL #numeric_computation #numerical #NumPy #OAuth #object_serialization #OCR #overloading #package #parallel #pipeline #protocols #PostGIS #pyAudioAnalysis #pycon #Pyflakes #PyInstaller #PySide #PyTorch #pytest #python #Pyvideo_archives #Qt #React #Redis #random #request #REST #satellite #scrapy #scikit_learn #SciPy #searching #submit #selectbox #Selenium #serialization #server #socket #task #telegram #TensorFlow #test #text_boxes #text #tuples #unicode #Universe #Unix #urllib #upload #Web

djangoproject

@djangoproject · Post #513 · 30.11.2017 г., 22:00

#AI#Artificial_Intelligence #AJAX #aiohttp #Anaconda #AngularJS #API #Atom #AWS #asyncio (#Asynchronous) #audio #automated_testing #automation #atexit #BeeWare #Big_Data #bitcoin #blockchain #Bluemix #Brython #button #Celery #client #class #classmethod #concurrency #Coroutine #cron #CSS #curl #data_analysis #data_mining #data_processing #database #Deep_Learning#deep_learning #Debian #decorator #deploy #dict #dispatch #django #django_cms #Django_REST_Framework #dropdownbox #Docker #event #Firefox #Flask #form #functions #Generator #GeoDjango #git #Google #GPU #GUI #Gym #host #HTML #httplib #learn #Image_processing #intelligence #input #Instagram #IOT #iPython #Jupyter #lambda #learn #License #Linux #lists #machine_learning #Magenta #map #Matplotlib #Metaprogramming #Micro_services #Micropython #mind #monitoring #MongoDB #modules #Mozilla #Multipart #multi_touch_apps #multiprocessing #Nodes #NoSQL #numeric_computation #numerical #NumPy #network #neural_network #OAuth #object_serialization #OCR #overloading #package #parallel #pipeline #protocols #PostGIS #pyAudioAnalysis #pycon #Pyflakes #PyInstaller #PyPI #PyQt #PySide #PyTorch #pytest #python #Pyvideo_archives #Qt #Raspberry_Pi #React #Redis #random #request #Regular_Expressions (#re) #REST #RSS #satellite #scikit_learn #SciPy #scrapy #searching #selectbox #Selenium #serialization #server #sessions #single_responsibility_principle #socket #Spark #str #submit #task #telegram #template #TensorFlow #test #text_boxes #text #tuples #unicode #Universe #Unix #unit_test #urllib #upload #uWSGI #Web #WSGI