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

Резултати

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

Пребарај: #mssqlserver

当前筛选 #mssqlserver清除筛选
MDC Uzbekistan

@mdcuzbekistan · Post #227 · 26.11.2021 г., 09:44

#dotnet#middle#MSSQLserver Applied Labs is looking for a .Net Developer Salary: $1500-3000 Location: 100% remote job, but we have an office in Tashkent, if you feel comfortable working from the office. All stages of recruitment are carried out remotely by calling a video (Zoom). You will need to have: - Proficiency in C #, .NET Framework and .NET Core; - Understanding how web protocols (HTTP, HTTPS) and REST / SOAP API work; - Knowledge of MS SQL Server, Oracle, PostgreSQL: the ability to design a database structure, write and optimize SQL queries and stored procedures; - 3+ years of work experience; - Fluency in English (verbal and written communication); - Bachelor's Degree in Computer Science, Engineering or related field or strong track record proving the equivalent level of experience; - Capability to multi-task with strong attention to detail; - Ability to work in a fast-paced, agile environment and resolving unplanned incidents quickly; - Outstanding communication skills, including the ability to effectively present information in both technical and non-technical terms and train users using non-technical terms; - Strong customer service focus; - Excellent team player skills with the ability to influence others. It would be an added bonus if you have: - Azure, Azure DevOps ; - M365 is a huge plus; - Jira and Confluence; - MS Graph API’s. We would love to see: - A sound knowledge of software engineering; - Excellent analytical skills; - Sourcing requirements from customers and suggesting appropriate solutions; - Quick generating of POC (proof of concepts) and demos; - Self-motivated, proactive, independent & responsive candidate, the specialist, who requires little supervisory attention We offer: - Flexible office policy - You can work from wherever you want or from our cozy office in Tashkent. You can even combine both - few days in the office and a few days remote; - 5/2 work week, 8 hours a day (you are expected to be available for communication between 18:00 to 23:00 Tashkent time, as you'll be working with the US team located in New York); - Official employment in accordance with Uzbekistan's Labor Laws; - Frequent team-building activities and internal hackathons; - Health insurance; - English courses; - Group exercises; - Reimbursement for sport. Send an email with your resume in English and the subject line "Data Engineer" to [email protected] To apply for this position, please feel out the application form here: https://appliedlabs.pinpointhq.com/en/jobs/32045 👉Подписаться на канал @UzDev_Jobs