arctic-ocean总结

这一周以来,就是做这个项目了,遇到很多坑,学到很多东西。
这个项目设计一下知识点:
1、http/api

<1>首先,看gitlab的help,api部分,里面对于访问group,project,merge_request的url有介绍,可以利用postman模拟访问,但是后面都要跟上自己的token
比如这样的url:code.vipkid.com.cn/lib/api/groups?private_token=R7sdfhef-d5jZQ6sfjwR

<2>请求用的是requests,马越说这个是业界口碑很好的,什么urllib之类的不如这个好

1
2
3
response = requests.get(url)
response.json()
r = requests.post(url, data={'body': body})

2、markdown
markdown其实就是一个字符串,可以在编辑器里传入一个字符串,然后会解析成markdown的格式,刚开始我用的就是字符串拼接的方式,在上篇博客中有所介绍,后来用了三个引号,虽然本质相同,但是方便很多,专门建一个模版,然后导入,使用string({key}).format(key=value)
3、python web
当然这是web开发项目,涉及到表单之类的知识。
4、e-mail
邮件部分是学长写的,我直接导入调用就行了

from envelopes import Envelope

通过这次项目,学到很多有关编程优雅发面的东西:

<1>关于url的命名,最好是要让人能够通过url看出这一个页面时用来做什么的 比如:

@bp.route('/group/<id>/projects') 
@bp.route('/group/<id>/project/<pid>/mr')

<2>可以重复利用的代码写在libs中,这样不仅可以重复利用,也可以使代码看起来很简洁易懂。比如对于gitlab接口的操作我都写在了libs\api\gitlab.py中。

<3>对gitlab的请求url前缀是相同的 那么可以定义API_PREFIX = ‘https://code.vipkid.com.cn/api/v3/',然后每个url字符串拼接,马越说这样是最好的注释,别人可以看懂这是什么。

今天早上马越给我看了一个它们现在正在写的程序,代码封装的特别好,不会使用requests.get(url)这样的写法,因为这样不能让人知道get了些什么,有什么是可以get到的,他们使用了Field entity 这些我还不懂,也许以后会慢慢接触到吧!
还有就是提交代码的时候,不要提交.pyc 文件 .env文件!
可能还有些东西,以后想起来再加上吧。