将对象和django模型转换为固定格式记录。

django-copybook的Python项目详细描述


此应用程序允许您将对象转换为固定宽度的记录。

在0.1.0版中,我们引入了一个全新的(尽管类似)接口
,它打破了对django的所有依赖,并消除了手动设置字段顺序的必要性。我们称之为"fixedwidth"。

te=fields.datefield(length=10,format="%y-%m-%d")

>;>p=person(first庘name="joe",last庘name="smith",sides=3,birth庘date="1982-09-11")
>;>p.birth庘date
datetime.date(1982,9,11)
>;"joe smith 031982-09-11"

因此,在记录被实例化后设置属性,给出
字段默认值和其他有趣的东西。


当您有一个记录实例时,数据值将始终是它们的
python值,并且当您对整个记录或
单个字段执行to_记录时,它将具有固定的宽度格式。



N 0.1.1:
listfield:允许您拥有一个值由另一个
完整记录组成的字段。类似于cobol的occurs功能。在listfield上声明
length表示记录重复的次数。


用法:
类电话号码(记录):
标识符=字段。stringfield(length=10,default="mobile")
区域代码=字段。integerfield(length=3)
前缀=字段。integerfield(length=3)
行号=字段。integerfield(length=4)

class person(record):
名字=字段。字符串字段(length=20)
姓=字段。字符串字段(length=30)
同级=字段。整数字段(length=2)
出生日期=字段。日期字段(length=10,format="%y-%m-%d")
电话号码=字段。列表字段(record=phonenumber,length=3)

>;>;phone_one=电话号码(区号=515,前缀=555,行号=2222)
>;>;person=个人(名字=joe,姓氏=smith,兄弟姐妹=3,
出生日期=1982-09-11,电话号码=phone_one])

>;>;个人。到_record()
'joe smitH 031982-09-11Mobile 515552222Mobile 0000000000 Mobile 0000000000'



0.1.2版中的新功能:
将固定宽度格式的记录转换回记录对象


用法:
类人员(记录):
名字=字段。字符串字段(长度=20)
姓氏=字段。字符串字段(长度=30)
同级=字段。整数字段(长度=2)
出生日期=字段。日期字段(长度=10,格式="%y-%m-%d")

>;>;固定宽度记录='Joe Smith 031982-09-11'
>;>;个人=个人。来自个人记录(固定宽度记录)
>;>;个人。名字
"joe"
>;>person.姓氏
"smith"
>;>person.兄弟姐妹
3
>;>person.出生日期
date time.日期(1982,9,11)



0.1.6版的新版本:
fragmentfield:类似于列表字段,但只出现一次。
如果您有共同的元素,则很有用。包含在多个记录中。


用法:
类电话(记录):
区域代码=字段。integerfield(长度=3)
前缀=字段。integerfield(长度=3)
行号=字段。integerfield(长度=4)

类联系人(记录):
名称=字段。stringfield(长度=30)
电话号码ber=fields.fragmentfield(record=phone)
email=fields.stringfield(length=30)

>;>;phone=电话号码(区号=515,前缀=555,行号=2222)
>;>;contact=联系人(name="joe",phone\u number=电话,email="joe@example.com")
>;>;contact.to\u record()
"joe 515552222joe@example.com"


或:

>;>;联系人=联系人(name="joe",email="joe@example.com")
>;>;联系人。电话号码。区号=515
>;>;联系人。电话号码。前缀=555
>;>;联系人。电话号码。行号=2222
>;>;contact.to_record()
'joe 515552222joe@example.com'




0.1.7版中的新功能:
您现在可以用包含比记录具有字段更多项的字典填充记录对象。如果记录具有关联字段,则该记录将使用这些值,但将忽略额外的数据。

OW有一个"auto_truncate"属性,可以设置为
将每个字段截断为预期大小,而不是引发错误。
用法:
类示例(记录):
字段=字段。字符串字段(长度=5)

t>>>str
"this"



注意:
因为我们使用的是ordereddict,所以新的fixedwidth实现
只适用于python 2.7及更高版本。(如果需要,您可以自己复制orderddict
类<;2.7)


先前的django模型实现正在等待弃用。

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

推荐PyPI第三方库


热门话题
java Android将字符串拆分为数组   java如何读取底层HttpServerExchange对象中的响应数据?   在jenkins上安装gitplugin时出现java错误   java DecimalFormat格式decimal,用于保留可变数量的尾随零   java Jaxws、spring和SpringBeanAutowiringSupport   Gson中抽象类的java反序列化   监视Windows服务器中的UDP数据包丢失,Java   java从侦听器调用所有者类   java Scala和Robocode类循环错误   java映像未上载到数据库   java如何将XML文件直接写入zip存档?   java为什么需要EventSourcingHandler(在聚合对象中)?   接受特定对象或其子类型的java通用方法   java Spring安全过滤器映射在特定Url模式上禁用