使用python flask实现写接口供别人调动,并把flask项目部署在Linux服务器上

  • 需求:
    需要写接口查数据库数据,并返回给前端。
  • 思路:
    这个需求要求是用最快的方式出一个demo,所以选择用python flask编写,它比较轻量级。
  • 代码实现,用几个例子说明一下用法
    1.直接返回字符串,并用json返回
#coding:utf-8
from flask import Flask, request
import pymysql
import json

app = Flask(__name__)
#定义接口名称,调用形式:Http://ip地址:5000/getLevel
@app.route('/getLevel')
def get_Level():
    level=[]
    detaLevel={}
    detaLevel['S']="S"
    detaLevel['A']="A"
    detaLevel['B']="B"
    detaLevel['C']="C"
    level.append(detaLevel)
    jsonLevel=json.dumps(level,ensure_ascii=False)
    return jsonLevel
    if __name__ == '__main__':
    # app.run(debug=True)
    # 自定义ip地址和端口号,ip地址用cmd命令,输入ipconfig查看一下替换一下就行
    app.run(host='*.*.*.*', port=5000)

2.查询数据库,并返回json形式的数据。

@app.route('/getData')
def get_data():
    db = pymysql.connect(host="", user="root",
                         password="", db="", port=3306)
    cur = db.cursor()

    sql="SELECT * from table_name "
    cur.execute(sql)
    results = cur.fetchall()
    sq = []
    for row in results:
            data = {}
            data['ID_NAME'] = row[0]
            data['ID'] = row[1]
            #注意,要是数值类型要转成字符串类型,不然会报错
            data['NUM'] = str(row[2])
            sq.append(data)
    jsondatar = json.dumps(sq, ensure_ascii=False)
    db.close()
    return jsondatar

3.接受前端的参数

level= request.args.get('level')
  • 放在服务器上运行
    这里就放一个最简单的运行方式。
    1.在编写好的.py文件上传到服务器上。
    2.开放5000端口号。
 1. 开放端口命令: /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
 2.保存:/etc/rc.d/init.d/iptables save
 3.重启服务:/etc/init.d/iptables restart
 4.查看端口是否开放:/sbin/iptables -L -n

3.修改代码里面的ip地址。
4.放在后台运行。

 nohup python HttpTest.py >HttpTest.log 2>&1 &

在这里插入图片描述
5.停止运行。

查看运行信息
ps -ef |grep HttpTest.py
kill -9 21788

在这里插入图片描述

你可能感兴趣的:(python)