✨博文作者 wangzirui32
💖 喜欢的可以 点赞 收藏 关注哦~~
👉本文首发于CSDN,未经许可禁止转载
😎 hello,大家好,我是wangzirui32,今天我们来学习如何使用PyGithub+jinja2生成Github项目海报,开始学习吧!
1. 第三方库准备
我们需要安装PyGithub
和jinja2
第三方库,PyGithub
用来获取存储库的基本信息,jinja2
用来生成HTML海报,安装命令:
pip install pygithub jinja2
2. 项目思路
我们创建app.py
,get_data.py
和repository.html
,get_data.py
用来获取存储库数据,app.py
将通过HTML模板repository.html
生成海报,就完成了
3. get_data.py
get_data.py
代码如下:
from github import Github
from datetime import datetime
def get_data(username="wangzirui32", repo="wangzirui32/wzr_spider"):
g = Github() # 定义Github对象
repo = g.get_repo(repo) # 获取存储库
return {
"username": username, # 用户名
"post_time": datetime.now().strftime("%Y-%m-%d"), # 海报创建时间
"name": repo.full_name, # 全名
"desc": repo.description, # 说明
"created_date": repo.created_at, # 创建时间
"last_push": repo.pushed_at, # 最后一次提交日期
"home_page": repo.homepage, # 项目主页
"language": repo.language, # 编程语言
"forks": repo.forks, # 分支数
"stars": repo.stargazers_count #星数
}
if __name__ == '__main__':
from pprint import pprint
pprint(get_data())
4. app.py
app.py
代码:
from jinja2 import Template
from data import get_data
def create_page(data):
# 读取模板
t = Template(open("repository.html", encoding="utf-8").read())
# 返回渲染结果
return t.render(data)
if __name__ == '__main__':
# 写入post.html
with open("post.html", "w", encoding="utf-8") as f:
f.write(create_page(get_data()))