Python Flask 编写API – 一言篇

动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。

一言(Hitokoto.cn)

引子

这是来自一言网站的一段话,我觉得这就是许多IT死宅的浪漫吧。最近沉迷于博客相关的东西,自然也就想为博客社区做做贡献,四下翻翻,发现自己也没啥可贡献的(笑),于是乎就有了开发自己的API服务的想法。凡事讲究从易到难,看看那些参数一大堆,认证繁琐的东西,我还是先从稍微简单的一言开始吧。

什么是一言

简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。 或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。

一言(Hitokoto.cn)

一言实际上就是让你的博客变得更加高大上的一句话,WordPress自带的Hello Dolly插件的作用也与之类似。

架构选择

要开发这种后端作用远大于前端的应用,选择就非常多了。有Spring Boot ,Go,Python Flask,甚至PHP也行。但综合考虑我的需求和自己的编程水平,我最终选择了Python Flask,因为我对Python稍微熟悉一点,且以后将要实现的更多功能利用Python里的库可以非常方便地实现。

需求与前置工作

设想是这样的:访问一个URL,直接得到一句一言,并可以通过更改请求的方式得到出处。听起来很简单是吧,实现起来我可是处处掉坑。

要建立一言API,一言本身肯定是最重要的。本来这将会成为最困难的一部分,我甚至已经做好了写爬虫的准备,但感谢Hitokoto.cn,将他们的公共API的一言数据全部公开,省去了我一大麻烦。这里给出他们的一言仓库链接,大家可以自行下载。

至于开发环境,就是一般的Python开发环境,我这里在Windows下用PyCharm开发,然后部署到Linux服务器上。

初识Flask

Flask 是一个使用 Python 编写的轻量级 Web 应用程序框架,用于这种没什么前端需求的应用再合适不过。使用很简单,但性能就不是很好。经过后来的实测,长时100QPS或短期1000QPS以上就会炸,在初期小流量下还行。后期可能会用Go重写。

以下提供一个可以运行的最小Flask例程,对于这种开发,哪怕不求甚解也行,反正临时用用。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello World'

if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000, debug=True)
不建议将app.run()写法用于生产环境中
敷衍的开发过程@app.route(‘/hitokoto/’)
def get_main():
conn = sqlite3.connect(‘DB.db’)
hito = conn.execute(
‘select * from hitokoto order by random() limit 1’).fetchone()
logging.info(“Hitokoto ” + str(hito[0]))
return “{} ——「{}」”.format(hito[1], hito[2])这里给出我使用的处理函数,很简单,从SQLite数据库中随机选出一条记录,经格式化后直接返回,没有任何美化或者格式上的东西,这些就交给前端吧。(好像前端后端都是我)另给出一种适合用于生产环境下的服务运行写法if __name__ == ‘__main__’:
server = pywsgi.WSGIServer((‘0.0.0.0’, 50000), app)
server.serve_forever() 至此,这个API也基本能用了,但性能不忍直视。等哪天有空,Golang重写,换数据库,还可能搞分布式,但是不一定写博文

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇