前段時間學(xué)習(xí)使用了falcon框架因惭,針對此框架的學(xué)習(xí)經(jīng)驗做了如下總結(jié)。
1.在學(xué)習(xí)falcon之前我們先來了解下,該框架的主要作用和運用場景侈贷,falcon主要還是針對RESTful服務(wù)打造的。
2.接來下我們動手安裝一下falcon等脂,python我們用的3.5的版本俏蛮,使用pip來安裝,pip install falcon下載下來上遥,我們還有安裝gunicorn搏屑,gunicorn主要是后臺服務(wù)的穩(wěn)定運行,數(shù)據(jù)庫使用mysql粉楚,就需要安裝python-mysqldb辣恋,安裝完就可以開始干活了,falcon的使用感覺很簡單的模软,沒有太多的難點伟骨,估計是沒有使用太多的高級功能吧,反正我們慢慢去發(fā)現(xiàn)吧燃异,導(dǎo)入falcon模塊携狭,然后就編輯自己的純邏輯代碼,
接下來展示一段代碼:
import falcon
class Resource(object):
? ? def on_get(self, req, resp):
? ? ? ? resp.body = '{"message":"Hello world!"}'
? ? ? ? resp.status = falcon.HTTP_200
api = application = falcon.API()
api.add_route('/test', Resource())
就是這么簡單回俐!你已經(jīng)實現(xiàn)了一個可以響應(yīng)get請求的類了逛腿,同樣的post請求只要寫成on_post就行了,是不是簡單到不敢相信仅颇?先將上面的代碼保存為test.py,接下來单默,繼續(xù)編寫代碼,然后試著運行灵莲,就能讓你的服務(wù)器真正的跑起來了雕凹。再寫個app.py,內(nèi)容如下:
import falcon
import test
api = application = falcon.API()
test = test.Test()
# 添加路由控制
api.add_route('/test', test)
打開終端到當(dāng)前目錄下運行以下命令:gunicorn?[-b 127.0.0.1:8000] app
現(xiàn)在你可以去瀏覽器打開127.0.0.1:8000/test了,會出現(xiàn){"message": "Hello world"}枚抵,你的服務(wù)器已經(jīng)跑起來了线欲,是不是感覺很棒!這差不多就是用falcon開發(fā)API所要做的所有事情了(至少我目前為止只用到了這些汽摹, -b參數(shù)可以綁定ip和端口號李丰,默認(rèn)就是127.0.0.1:8000)。
接下來的這段代碼是使用mysqldb連操作數(shù)據(jù)庫的逼泣,依舊很簡單:
import MySQLdb
class DBTest(object):
? ? def test(self):
? ? ? ? try:
? ? ? ? ? ? conn = MySQLdb.connect(host='host',user='user',passwd='psw',port=3306)
? ? ? ? ? ? cur = conn.cursor()
? ? ? ? ? ? cur.execute('create database if not exists test default character set utf8 default collate utf8_general_ci')?
? ? ? ? ? ? conn.select_db('test')
? ? ? ? ? ? cur.execute('create table test(id int, title varchar(20))')
? ? ? ? ? ? conn.commit()
? ? ? ? ? ? cur.close()
? ? ? ? ? ? conn.close()
? ? ? ? except MySQLdb.Error, e:
? ? ? ? ? ? print "Error >>> " + str(e)
好了到目前為止我們就學(xué)習(xí)到這兒了趴泌。