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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tang_xiaotang/article/details/92812944
  • 需求:
    需要写接口查数据库数据,并返回给前端。
  • 思路:
    这个需求要求是用最快的方式出一个demo,所以选择用python flack编写,它比较轻量级。
  • 代码实现,用几个例子说明一下用法
    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 写个接口供其他人调用?怎么实现

07-14

已经写好了爬虫功能,想写一个接口,供别人调用!有没有写过的,给说下怎么写的,最后直接贴图,或者代码,这样比较直观rnrn这是我写的爬虫代码rnimport requestsrnfrom bs4 import BeautifulSouprnfrom http import cookiesrnimport urllibrnimport http.cookiejarrn#from ConnectionMysql.mySQL_con import con_mysqlrnimport timernfrom pyquery import PyQuery as pqrnfrom pip._vendor.requests import apirnfrom pip._vendor.requests.api import getrnrnheaders = rn 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0',rn 'Referer':'url',rnrnrnsession = requests.Session()rnsession.headers.update(headers)rn#username = '362330199811103775'rn#password = '123456'rnurl = ‘网页地址‘’rndef login(username,password,lt,_eventId='submit'): #模拟登入函数rn rn data = #需要传去的数据rn '_eventId':_eventId,rn 'lt':lt,rn 'password':password, rn 'submit':u'登录',rn 'username':username, rn rn html = session.post(url,data=data,headers=headers)rndef get_lt(url): #解析登入界面_eventIdrn html = session.get(url)rn #获取 ltrn soup = BeautifulSoup(html.text,'lxml',from_encoding="utf-8")rn lt=soup.find('input',type="hidden")['value']rn #print(soup.find_all('input'))rn return ltrn#连接登录方法rndef con_login(username,password):rn lt = get_lt(url)rn login(username,password,lt)rn login_url = '网页地址'rn per_html = session.get(login_url)rn soup = BeautifulSoup(per_html.text,'lxml',from_encoding="utf-8")rn sql = "INSERT INTO xue_xin_info VALUES((SELECT REPLACE(UUID(),'-','')),"rn for tag in soup.find_all('table',class_='mb-table'):rn print(tag)rn for tag1 in tag.find_all('td'):rn te= tag1.get_text(); rn sql +="'"+te+"'," rn p=pq(tag)rn print(p.find('th').filter(lambda i,this: pq(this).text() == '证件号码:').parent().find('.data-s2 ds2-yaxnunnrdt9n41ui-m8').text()) rn #拼接sql rn sql +="'')"rn print(sql)rn con_mysql(sql)rnrnrn rn rn rn rn rn rn rn 论坛

没有更多推荐了,返回首页