flask mysql 斜线_Mac使用Flask + Mysql 搭建API服务

Flask是一个Python Web开发框架。

Mysql是全球广受欢迎的开源数据库。

[{"coin_name": "ADA"}, {"coin_name": "AION"}, {"coin_name": "ARDR"}, {"coin_name": "ARK"}, {"coin_name": "BCH"}, {"coin_name": "BNT"}, {"coin_name": "BTC"}, {"coin_name": "CNX"}, {"coin_name": "DASH"}, {"coin_name": "DCN"}]

Mysql与数据表是提前准备好的。

需要的数据只需一条sql语句就能从数据库中拿到。

SELECT coin_name FROM week_price LIMIT 10

所以,接下来需要做的事情,就是创建Flask项目与编写相关的代码。

下文中使用的IDE是Pycharm.

创建Flask项目

在pycharm 中新建Flask项目。

python版本管理使用的virtualenv.

3306e8d9dd17

3306e8d9dd17

安装MySQLdb

需要使用python操作mysql数据库,所以需要安装MySQLdb,它将一些对于数据库的基本操作封装成对象和方法,方便调用。

切换到虚拟的python 环境中。

打开终端输入下面的命令。

$ which python

/Users/ourtrip/anaconda2/bin/python

$ cd /Users/ourtrip/Documents/baa/bglass_server_v0.2/

$ source venv/bin/activate

$ which python

/Users/ourtrip/Documents/baa/bglass_server_v0.2/venv/bin/python

安装MySQL-python。

在MySQL-python · PyPI中找到下载url:使用curl将文件下载下来。

$ cd ..

$ curl -O https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip

$ unzip MySQL-python-1.2.5.zip

打开解压后MySQL-python-1.2.5文件夹,编辑site.cfg中的mysql_config。

下面是非常关键的步骤,我之前是因为没有更改mysql_config的路径,导致浪费四五个小时的时间,用来找原因。

$ cd MySQL-python-1.2.5

$ which mysql

/usr/local/mysql/bin/mysql

$ vim site.cfg

from

#mysql_config = /usr/local/bin/mysql_config

to

mysql_config = /usr/local/mysql/bin/mysql_config

使用wq保存退出。

编译安装MySQL-python-1.2.5

$ python setup.py clean

$ python setup.py build

$ sudo python setup.py install

MySQL-python安装是否成功?

$ python

>>> import MySQLdb

到此,MySQL-python也顺利安装成功,实际操作时,会遇到许多意想不到的问题,我自己的实际经历就是这样,我将解决问题的过程详细记录在文末,感兴趣的跳跃查看。

编写代码

接下来就是使用MySQL-python提供的方法,获取mysql存储的数据。

from flask import Flask

import json

import MySQLdb

app = Flask(__name__)

_db = MySQLdb.connect("localhost", "root", "12345678", "Lemoying", charset='utf8')

_cursor = None

@app.route('/')

def hello_world():

return 'Hello World!'

@app.route('/week_price')

def week_price():

sql = '''SELECT coin_name FROM week_price LIMIT 10'''

_cursor = _db.cursor()

try:

_cursor.execute(sql)

row_headers = [x[0] for x in _cursor.description]

results = _cursor.fetchall()

print(row_headers)

json_data = []

for result in results:

json_data.append(dict(zip(row_headers, result)))

print(json_data)

# _db.commit()

except:

_db.rollback()

_cursor.close()

return json.dumps(json_data)

if __name__ == '__main__':

app.run()

运行项目

"coin_name": "ADA"}, {"coin_name": "AION"}, {"coin_name": "ARDR"}, {"coin_name": "ARK"}, {"coin_name": "BCH"}, {"coin_name": "BNT"}, {"coin_name": "BTC"}, {"coin_name": "CNX"}, {"coin_name": "DASH"}, {"coin_name": "DCN"}]

回顾

整个过程比较耽误时间的是安装 MySQL-python,耽误时间的原因是使用pip install MySQL-python会报错误,报出的错误找不到解决的方法,只能改变方向,下载安装包采用手动安装的方式。

在手动安装的过程中,因为没有更改MySQL-python-1.2.5中site.cfg中关于mysql_config的配置,而系统中安装的mysql已经不是默认的路径。

site.cfg中mysql_config是/usr/local/bin/mysql_config,使用which mysql命令查看到mysql 的安装路径是/usr/local/mysql/bin/mysql。

/usr/local/bin/mysql_config

/usr/local/mysql/bin/mysql/mysql_config

这是导致使用python set.up build 命令一直失败的原因。

到此,用Flask + Mysql + Virtualenv 完成了一个Api的编写。

至于如何这些数据展示出来,是后面需要做的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值