爬虫(2)-Flask后端 -接口

爬虫(2)-Flask后端 -接口

存完数据之后,就是通过Python代码将其显示在页面上,并被前端调用,加载到前端界面。
这边采用flask框架。
大体形式可以参照 廖雪峰 Python中 web框架里的flask。
代码中先是查询了数据库的内容

def find(select1, select2):
    db, cursor = cur()
    data = show(cursor, 1000, select1, select2)
    db.commit()
    data_dict = {}
    data_list = []
    num = 0
    a = ['id', 'RecruitPostName', 'CountryName', 'LocationName', 'BGName', 'CategoryName', 'Responsibility_new',
         'LastUpdateTime',
         'Responsibility', 'Requirement', 'CategoryId']
    for i in data:
        num = num + 1
        one_dict = dict(zip(a, i))
        data_list.append(one_dict)
    data_dict['total'] = num
    data_dict['items'] = data_list
    option1 = {'40001': [{'value': '40001001', 'label': '技术研发类'},
                         {'value': '40001002', 'label': '质量管理类'},
                         {'value': '40001003', 'label': '技术运营类'},
                         {'value': '40001004', 'label': '安全技术类'},
                         {'value': '40001005', 'label': 'AI、算法与大数据'},
                         {'value': '40001006', 'label': '企管类'}],
               '40002': [{'value': '40002001', 'label': '设计类'},
                         {'value': '40002002', 'label': '游戏美术类'}],
               '40003': [{'value': '40003001', 'label': '产品类'},
                         {'value': '40003002', 'label': '游戏产品类'},
                         {'value': '40003003', 'label': '项目类'}],
               '40004': [{'value': '40004', 'label': '营销与公关'}],
               '40005': [{'value': '40005001', 'label': '销售类'},
                         {'value': '40005002', 'label': '客服类'}],
               '40006': [{'value': '40006', 'label': '内容'}],
               '40007': [{'value': '40007', 'label': '财务'}],
               '40008': [{'value': '40008', 'label': '人力资源'}],
               '40009': [{'value': '40009', 'label': '法律与公共策略'}],
               '40010': [{'value': '40010', 'label': '行政支持'}],
               '40011': [{'value': '40011', 'label': '战略与投资'}]}
    option = [{'value': '40001', 'label': '技术'},
              {'value': '40002', 'label': '设计'},
              {'value': '40003', 'label': '产品'},
              {'value': '40004', 'label': '营销与公关'},
              {'value': '40005', 'label': '销售、服务与支持'},
              {'value': '40006', 'label': '内容'},
              {'value': '40007', 'label': '财务'},
              {'value': '40008', 'label': '人力资源'},
              {'value': '40009', 'label': '法律与公共策略'},
              {'value': '40010', 'label': '行政支持'},
              {'value': '40011', 'label': '战略与投资'}]
    data_use = {'code': 20000, 'data': data_dict, 'option': option, 'option1': option1.get(select1)}
    return data_use

之后就是通过flask将数据显示在网页上作为接口

from flask import Flask, jsonify
from flask import request
import test

app = Flask(__name__)


class Config(object):
    DEBUG = True
    JSON_AS_ASCII = False


app.config.from_object(Config)


@app.route('/data', methods=['GET', 'POST'])
def tencent_data():
    select1=request.args.get('select')
    select2 = request.args.getlist('select_after[]')
    print(select2)
    data = test.find(select1,select2)
    return jsonify(data)


@app.route('/', methods=['GET', 'POST'])
def main():
    # data = {"code": 20000, "token": 1000000}
    return '<h1>hello user<h1>'


@app.route('/user/login', methods=['GET', 'POST'])
def loginone():
    data = eval(request.data.decode())
    username = data.get('username')
    password = data.get('password')
    old_password, token = test.login(username)
    if password == old_password:
        data = {"code": 20000,'data': { "token": token}}
    else:
        data = {"code": 20001, 'msg': '密码错误'}
    return jsonify(data)


@app.route('/user/logout', methods=['GET', 'POST'])
def loginout():
    data = {"code": 20000, "data": "success"}
    return jsonify(data)


@app.route('/user/info', methods=['GET', 'POST'])
def logininfo():
    data = request
    print(data)
    data = {"code": 20000, "data": {'name': 'hello', 'avatar': 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif'}}
    return jsonify(data)

if __name__ == '__main__':
    app.run()

其中还有vue的登录,退出,以及信息反馈接口。以保证在vue-admin-template添加完代理后可以实现两个端口分离。

#查询user表数据
def login(name):
    db, cursor = cur()
    sql = "select password,token from user where username= %s"
    cursor.execute(sql, (name))
    password, token = cursor.fetchone()
    return password, token


查询login表数据

user表
数据库中保存的数据
之后的操作就是前端的修改了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nightelves11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值