python灵活的slugify函数

awesome-slugif的Python项目详细描述


https://travis-ci.org/dimka665/awesome-slugify.svg?branch=master 1,Python可伸缩函数

安装

pip install awesome-slugify

用法

fromslugifyimportslugifyslugify('Any text')# 'Any-text'

自定义slugify

fromslugifyimportslugify,Slugify,UniqueSlugifyslugify('Any text',to_lower=True)# 'any-text'custom_slugify=Slugify(to_lower=True)custom_slugify('Any text')# 'any-text'custom_slugify.separator='_'custom_slugify('Any text')# 'any_text'custom_slugify=UniqueSlugify()custom_slugify('Any text')# 'any-text'custom_slugify('Any text')# 'any-text-1'

slugify函数可选参数

to_lower# if True convert text to lowercasemax_length# output string max lengthseparator# separator stringcapitalize# if True upper first letter

slugify类args

pretranslate=None# function or dict for replace before translationtranslate=unidecode.unidecode# function for slugifying or Nonesafe_chars=''# additional safe charsstop_words=()# remove these words from slugto_lower=False# default to_lower valuemax_length=None# default max_length valueseparator='-'# default separator valuecapitalize=False# default capitalize value

唯一类args

# all Slugify class args +uids=[]# initial unique ids

预定义的slugify函数

有些slugify函数是这样预定义的:

fromslugifyimportSlugify,CYRILLIC,GERMAN,GREEKslugify=Slugify()slugify_unicode=Slugify(translate=None)slugify_url=Slugify()slugify_url.to_lower=Trueslugify_url.stop_words=('a','an','the')slugify_url.max_length=200slugify_filename=Slugify()slugify_filename.separator='_'slugify_filename.safe_chars='-.'slugify_filename.max_length=255slugify_ru=Slugify(pretranslate=CYRILLIC)slugify_de=Slugify(pretranslate=GERMAN)slugify_el=Slugify(pretranslate=GREEK)

示例

fromslugifyimportSlugify,UniqueSlugify,slugify,slugify_unicodefromslugifyimportslugify_url,slugify_filenamefromslugifyimportslugify_ru,slugify_deslugify('one kožušček')# one-kozuscekslugify('one two three',separator='.')# one.two.threeslugify('one two three four',max_length=12)# one-two-four   (12 chars)slugify('one TWO',to_lower=True)# one-twoslugify('one TWO',capitalize=True)# One-TWOslugify_filename(u'Дrаft №2.txt')# Draft_2.txtslugify_url(u'Дrаft №2.txt')# draft-2-txtmy_slugify=Slugify()my_slugify.separator='.'my_slugify.pretranslate={'я':'i','♥':'love'}my_slugify('Я ♥ борщ')# I.love.borshch  (custom translate)slugify('Я ♥ борщ')# Ia-borshch  (standard translation)slugify_ru('Я ♥ борщ')# Ya-borsch   (alternative russian translation)slugify_unicode('Я ♥ борщ')# Я-борщ      (sanitize only)slugify_de('ÜBER Über slugify')# UEBER-Ueber-slugifyslugify_unique=UniqueSlugify(separator='_')slugify_unique('one TWO')# One_TWOslugify_unique('one TWO')# One_TWO_1slugify_unique=UniqueSlugify(uids=['cellar-door'])slugify_unique('cellar door')# cellar-door-1

自定义唯一的slugify检查器

fromslugifyimportUniqueSlugifydefmy_unique_check(text,uids):iftextinuids:returnFalsereturnnotSomeDBClass.objects.filter(slug_field=text).exists()custom_slugify_unique=UniqueSlugify(unique_check=my_unique_check)# Checks the database for a matching documentcustom_slugify_unique('te occidere possunt')

运行单元测试

$ virtualenv venv
$ venv/bin/pip install -r requirements.txt
$ venv/bin/nosetests slugify

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
尝试连接到Red5服务器时出现java问题   java实现Runnable的类被认为是ExecutorServices的“Runnable任务”?   java struts2类中的多个@validation   java未能应用插件[class'org.gradle.api.plugins.scala.ScalaBasePlugin']:gradle v2。13   如何使用Java流仅收集长度最大的元素?   从spring引导应用程序连接到firestore的java引发空指针异常   java从SQLite插入和获取真实数据类型会为连续插入获取空值吗?   当存在未知数量的空格时,使用java替代正向查找   部署如何为当今的浏览器部署java小程序(小程序、嵌入、对象)?   @OneToMany和@ManyToOne@Formula之间的java双向关系返回null   java为什么在我的例子中,协议缓冲区的性能比JSON差?   如何部署混合C++/Java(JNI)应用程序?   java如何在程序中显示字符串的完整信息。反恐精英?   java在Hibernate中从持久性上下文中分离实体中的实体