pyhton接口封装
from flask import Flask, jsonify, request
import json
app = Flask(name)
模拟数据库(内存存储)
loans = [
{
"客户姓名": "新增客户B",
"身份证号(示例)": "222222222222222222",
"贷款类型": "住房按揭贷款",
"贷款金额(元)": 2500000,
"贷款发放日期": "2023/11/15",
"贷款到期日期": "2053/11/15",
"贷款状态": "正常",
"每月还款额(元)": 12000.00,
"11月剩余本金(元)": 2500000,
"12月剩余本金(元)": 2490000,
"贷款用途": "购买住房",
"担保方式": "抵押(房产)",
"贷款经办行": "北京银行",
"产品大类": "住房类",
"贷款起始年份": 2023,
"用户年龄": 36,
"地区": "北京"
},
{
"客户姓名": "李四",
"身份证号(示例)": "876543210987654321",
"贷款类型": "住房按揭贷款",
"贷款金额(元)": 2000000,
"贷款发放日期": "2022/5/20",
"贷款到期日期": "2052/5/20",
"贷款状态": "正常",
"每月还款额(元)": 10972.22,
"11月剩余本金(元)": 1960000,
"12月剩余本金(元)": 1950000,
"贷款用途": "购买住房",
"担保方式": "抵押(房产)",
"贷款经办行": "上海银行",
"产品大类": "住房类",
"贷款起始年份": 2022,
"用户年龄": 35,
"地区": "上海"
},
{
"客户姓名": "刘十九",
"身份证号(示例)": "012345678901234567",
"贷款类型": "住房按揭贷款",
"贷款金额(元)": 1800000,
"贷款发放日期": "2023/1/5",
"贷款到期日期": "2053/1/5",
"贷款状态": "正常",
"每月还款额(元)": 10000.00,
"11月剩余本金(元)": 1760000,
"12月剩余本金(元)": 1750000,
"贷款用途": "购买住房",
"担保方式": "抵押(房产)",
"贷款经办行": "苏州银行",
"产品大类": "住房类",
"贷款起始年份": 2023,
"用户年龄": 43,
"地区": "苏州"
},
{
"客户姓名": "刘九",
"身份证号(示例)": "345345345345345345",
"贷款类型": "住房按揭贷款",
"贷款金额(元)": 1500000,
"贷款发放日期": "2023/1/10",
"贷款到期日期": "2048/1/10",
"贷款状态": "正常",
"每月还款额(元)": 8750.00,
"11月剩余本金(元)": 1460000,
"12月剩余本金(元)": 1450000,
"贷款用途": "购买住房",
"担保方式": "抵押(房产)",
"贷款经办行": "北京银行",
"产品大类": "住房类",
"贷款起始年份": 2023,
"用户年龄": 38,
"地区": "北京"
},
{
"客户姓名": "李十四",
"身份证号(示例)": "890890890890890890",
"贷款类型": "住房按揭贷款",
"贷款金额(元)": 1200000,
"贷款发放日期": "2023/1/25",
"贷款到期日期": "2043/1/25",
"贷款状态": "正常",
"每月还款额(元)": 7125.00,
"11月剩余本金(元)": 1160000,
"12月剩余本金(元)": 1150000,
"贷款用途": "购买住房",
"担保方式": "抵押(房产)",
"贷款经办行": "南京银行",
"产品大类": "住房类",
"贷款起始年份": 2023,
"用户年龄": 41,
"地区": "南京"
},
# 可以继续添加其他贷款数据...
]
自定义 JSON 响应函数,确保中文正常显示
def jsonify_cn(data):
return app.response_class(
json.dumps(data, ensure_ascii=False),
mimetype='application/json'
)
1. 首页(欢迎信息)
@app.route('/')
def home():
return jsonify_cn({
"message": "欢迎使用贷款管理系统",
"documentation": "访问 /loans 查看所有贷款记录"
})
2. 查询所有贷款记录
@app.route('/loans', methods=['GET'])
def get_all_loans():
return jsonify_cn(loans)
3. 根据身份证号查询单条贷款记录
@app.route('/loans/string:id_number', methods=['GET'])
def get_loan_by_id(id_number):
loan = next((l for l in loans if l["身份证号(示例)"] == id_number), None)
if loan:
return jsonify_cn(loan)
return jsonify_cn({"error": "未找到该贷款记录"}), 404
4. 新增贷款记录
@app.route('/loans', methods=['POST'])
def add_loan():
new_loan = request.get_json()
# 简单验证
if not new_loan or "身份证号(示例)" not in new_loan or "客户姓名" not in new_loan:
return jsonify_cn({"error": "请求数据无效,请检查身份证号和客户姓名"}), 400
# 检查是否已存在相同身份证号的记录
if any(l["身份证号(示例)"] == new_loan["身份证号(示例)"] for l in loans):
return jsonify_cn({"error": "该身份证号已存在贷款记录"}), 400
loans.append(new_loan)
return jsonify_cn(new_loan), 201
5. 更新贷款记录
@app.route('/loans/string:id_number', methods=['PUT'])
def update_loan(id_number):
loan = next((l for l in loans if l["身份证号(示例)"] == id_number), None)
if not loan:
return jsonify_cn({"error": "未找到该贷款记录"}), 404
update_data = request.get_json()
loan.update(update_data) # 更新数据
return jsonify_cn(loan)
6. 删除贷款记录
@app.route('/loans/string:id_number', methods=['DELETE'])
def delete_loan(id_number):
global loans
loans = [l for l in loans if l["身份证号(示例)"] != id_number]
return jsonify_cn({"message": "贷款记录删除成功"}), 200
if name == 'main':
app.run(debug=True)

浙公网安备 33010602011771号