三个引号

今昨两天,真是被markdown的模版折腾的够呛啊,先说下现在的项目吧,现在RD提测时是要很土在mr上的comment上写,而我们的arctic-ocean,可以将评论的内容调用gitlab的接口,自动提交评论并且发送邮件, 技术上有一点要求将提交的内容变成markdown的格式,再调用gitlab的接口。
首先我先了解了一下Markdown的语法,看怎么可以写成表格

1
2
3
4
5
| project_name | project_function | system_involved |   
| -------- | -------- | --------|
| cell 1 | cell 2 | cell3 |
| project_name | project_function | system_involved |
| -------- | -------- | --------|

于是我很费劲的写成了这样:

1
2
3
4
5
6
body1 = '|'+ 'project_name' +'|'+ 'project_function'+ '|'+'system_involved'+'|'+'database_   
changes'+'|'+'permissions_modify'+'|'+'people_concerned'+'|'+'testing_concerns'+'|'+'scheduled_launch_
time'+'|'+'remind_somebody'+'|' +'\n'+'|'+'--------'+'|'+'--------'+'|'+'--------'+'|'+'--------'+'|'
+'--------'+'|'+'--------'+'|'+'--------'+'|'+'--------'+'|'+'--------'+'|'+'\n'+'|'+ project_
name+'|'+project_function+'|'+system_involved+'|'+database_changes+'|'+permissions_modify+'|'+people_
concerned+'|'+testing_concerns+'|'+scheduled_launch_time+'|'+remind_somebody+'|

就是这样用字符串拼接的方式,虽然能够实现功能,但是真的不好些,而且也不好看,马越看后,先是让我写成一个模版,即建立一个新的文件,然后
import,这是一方面,更重要的是体会到了三个引号的强大,完全可以想如下这样写啊。三个引号是可以保留空行的,当马越跟我说可以这样的时候,
瞬间一阵风吹来似的,自己好蠢的写了好久,结果其实是可以直接复制过来的。

# coding: utf-8
comment_template = u'''\
| header 1 | header 2 |
| -------- | -------- |
| 测试项目名称 | {project_name}|
| 测试功能 | {project_function}|
| 提测涉及系统 | {system_involved} |
| 是否有数据库修改 | {need_to_change_db_schema}|
| 是否有权限修改 | {need_to_change_permissions} |
| 涉及人员 | {developers} |
| 测试关注点 | {checking_point} |
| 计划上线时间| {scheduled_launch_time} |
| 提醒某人 | {remind_somebody} |'''

view中这样:用string.format()

body = template.comment_template.format(
            project_name=project_name,
            project_function=project_function,
            system_involved=system_involved,
            need_to_change_db_schema=need_to_change_db_schema,
            need_to_change_permissions=need_to_change_permissions,
            developers=developers,
            checking_point=checking_point,
            scheduled_launch_time=scheduled_launch_time,
            remind_somebody=remind_somebody)