Python入門實戰--用Falcon框架開發REST API
公司專案急需一個簡單的API,沒有人做,正好前陣子看了遍Falcon的教程,所以就參考著做了下,做完的感覺是太簡單了,簡直簡單得讓人不敢相信。因為之前沒有任何服務端開發經驗,連基本的SQL語句都不太熟悉,但這次用falcon,python-mysqldb和gunicorn配合使用,居然很快就搭建起伺服器,而且REST API也跑通了。雖然是個相當簡單的API,而且肯定會有大量沒意識到的問題存在,但還是把這一過程記錄下來,總結一下。
首先是各種安裝(我的電腦上之前就裝了MySQL,Ubuntu系統自帶Python)
- $ sudo apt-get install python-pip(安裝python的包管理器)
$ pip install --upgrade [cython] falcon(如果加上cython好像比較快,沒有比較過)
$ pip install gunicorn(這個是後面執行伺服器的,關於這個目前就知道這麼多)
$ sudo apt-get install python-mysqldb(這個用來使用Python操作MySQL資料庫)
安裝完就可以開始幹活了
使用falcon開發API
使用gunicorn執行伺服器
使用mysqldb運算元據庫
falcon使用起來感覺非常簡單,當然也有可能是因為沒有深入去了解的原因。只要匯入falcon模組,剩下的幾乎就是純邏輯程式碼的編寫了。因為之前嘗試過PHP+Apache,光各種配置檔案簡直就是噩夢般的存在,使用falcon的時候甚至感覺不到是在做伺服器API開發,展示一段程式碼吧,自己敲的,可以執行:
import falcon
class Test(object):
def on_get(self, req, resp):
resp.body = '{"message": "Hello world!"}'
resp.status = falcon.HTTP_200
就是這麼簡單!你已經實現了一個可以響應get請求的類了,同樣的post請求只要寫成on_post就行了,是不是簡單到不敢相信?先將上面的程式碼儲存為test.py,接下來,繼續編寫程式碼,然後試著執行,就能讓你的伺服器真正的跑起來了。再寫個app.py,內容如下:
import falcon
import test
api = application = falcon.API()
test = test.Test()
# 新增路由控制
api.add_route('/test', test)
還是那麼簡單,現在這兩個.py檔案在同一個目錄下,開啟終端到當前目錄下執行以下命令:
$ gunicorn [-b 127.0.0.1:8000] app
現在你可以去瀏覽器開啟127.0.0.1:8000/test了,會出現{"message": "Hello world"},你的伺服器已經跑起來了,是不是感覺很棒!這差不多就是用falcon開發API所要做的所有事情了(至少我目前為止只用到了這些, -b引數可以繫結ip和埠號,預設就是127.0.0.1:8000)。
接下來的這段程式碼是使用mysqldb連運算元據庫的,依舊很簡單:
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') # 加上後面的兩句default就可以解決中文亂碼問題啦
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)
以上,幾乎就是這次做這個簡單的API所用到的所有技術了。
相關文章
- Elasticsearch 入門實戰(8)--REST API 使用二(Search API)ElasticsearchRESTAPI
- REST API 最佳入門指南RESTAPI
- 第五課 以太坊開發框架Truffle從入門到實戰框架
- AngularJS開發實戰入門教程AngularJS
- Util應用框架快速入門(4) - 整合測試開發入門框架
- Python專案案例開發從入門到實戰 - 書籍資訊Python
- Taro小程式跨端開發入門實戰跨端
- Redis 7.x 入門和開發實戰Redis
- SpringBoot優雅開發REST API最佳實踐Spring BootRESTAPI
- Rest API 開發 學習筆記RESTAPI筆記
- Python 內建介面開發框架 Tkinter入門篇 丁Python框架
- Python 內建介面開發框架 Tkinter入門篇 甲Python框架
- Python 內建介面開發框架 Tkinter入門篇 乙Python框架
- python專案開發例項-Python專案案例開發從入門到實戰——爬蟲、遊戲Python爬蟲遊戲
- Elasticsearch 入門實戰(9)--Java API Client 使用二ElasticsearchJavaAPIclient
- 【WEB API專案實戰乾貨系列】- WEB API入門(一)WebAPI
- Rest--入門REST
- Kotlin 入門開發__安卓小專案實戰Kotlin安卓
- Quarkus入門:構建PetClinic REST API - Rafał BorowiecRESTAPI
- Python開發實戰Python
- Python專案案例開發從入門到實戰-1.3 Python物件導向設計Python物件
- Electron-vue開發實戰0——Electron-vue入門Vue
- Flask框架搭建REST-API服務Flask框架RESTAPI
- GraphQL Vs. REST? API 開發方法的誠實比較 | transpositRESTAPI
- 【入門必看】Python有有哪些好用的網站開發框架?Python網站框架
- Toro - 基於PHP的REST開發框架PHPREST框架
- REST開發最佳實踐REST
- Dubbo 入門系列之基於 Dubbo API 開發微服務應用API微服務
- 快應用開發入門
- RAG應用開發實戰(01)-RAG應用框架和解析器框架
- 前端開發入門到實戰:JavaScript字串轉換數字前端JavaScript字串
- 安卓入門---安卓開發實戰經典1-3章安卓
- Serverless 架構下的 AI 應用開發:入門、實戰與效能最佳化Server架構AI
- Cordys BOP 4平臺開發入門實戰演練——Webservices開發(高階)Web
- Cordys BOP 4平臺開發入門實戰演練——For Each流程建模開發
- Cordys BOP 4平臺開發入門實戰演練——Until流程建模開發
- Cordys BOP 4平臺開發入門實戰演練——流程建模開發(BPM)
- Python專案案例開發從入門到實戰-詳情頁 夏敏捷主編Python敏捷