python百度ai拼接身份证_Python 百度ai身份证接口案例

调用百度Ai

完成一个学生信息录入的网页小案例

添加图片,身份证信息对号入座

utils.py

#encoding:utf-8

import requests

import urllib

from urllib import parse

import os

import json

import base64

URL = 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard'

class PersonIdCard(object):

Access_Token_URL = 'https://aip.baidubce.com/oauth/2.0/token'

Access_Key = 'your_ak'

Secret_Key = 'your_sk'

def get_access_token(self):

date = {

'grant_type':'client_credentials',

'client_id':self.Access_Key,

'client_secret':self.Secret_Key

}

headers = {

'Content-Type': 'application/json; charset=UTF-8'

}

resp = requests.post(self.Access_Token_URL,data=date,headers=headers)

return resp.json()['access_token']

def personalMsg(self,access_token,imgInput):

header = {

'Content-Type':'application/x-www-form-urlencoded'

}

f = open(imgInput,'rb')

img = base64.b64encode(f.read())

params = {

'image':img,

'id_card_side':'front',

'access_token':access_token,

}

params = parse.urlencode(params)

resp = requests.post(url=URL,data=params,headers=header)

return json.loads(resp.text)

def getworlds(resp,key):

result = resp['words_result']

return result[key]['words']

views.py

p = PersonIdCard()

access_token = p.get_access_token()

resp = p.personalMsg(access_token,os.path.join(settings.MEDIA_ROOT,file.name))

place = getworlds(resp,'住址')

gender = getworlds(resp,'性别')

birthday = getworlds(resp,'出生')

name = getworlds(resp,'姓名')

nation = getworlds(resp,'民族')

idcard = getworlds(resp,'公民身份号码')

data = {

'name':name,'gender':gender,'place':place,'birthday':birthday,'nation':nation,

'idcard':idcard

}

后台代码用的django,其它框架类似:personalMsg(access_token,you_file_path)

前台js代码:

function getObjectURL(file) {

var url = null;

if (window.createObjectURL != undefined) { // basic

url = window.createObjectURL(file);

}

else if (window.URL != undefined) {// mozilla(firefox)

url = window.URL.createObjectURL(file);

}

else if (window.webkitURL != undefined) {

// webkit or chrome

url = window.webkitURL.createObjectURL(file);

}

return url;

} //添加一个展示图片的url

$(function () {

var name = $("input[name='name']");

var gender = $("input[name='gender']");

var nation = $("input[name='nation']");

var birthday = $("input[name='birthday']");

var place = $("input[name='place']");

var idcard = $("input[name='idcard']");

var formData = new FormData();

$("#card").change(function () {

var objUrl = getObjectURL(this.files[0]);

$("#mycard").attr('src',objUrl);

formData.append('card',this.files[0]);

myajax.post({

'url':'/person/',

'data':formData,

processData:false,

contentType:false,

'success':function (result) {

if(result['code']==200){

var person = result['data'];

name.val(person['name']);

gender.val(person['gender']);

birthday.val(person['birthday']);

place.val(person['place']);

idcard.val(person['idcard']);

nation.val(person['nation']);

}

}

})

})

})

html代码:

{% load static %}

学生档案

添加身份证照片

学生档案

姓名:

性别:

民族:

出生日期:

住址:

身份证号:

所属学院:

入学日期:

毕业时间:

css

body {

margin: 0;

padding: 0;

background-color: #F7F7F7;

background: url("../../media/bg.jpg") no-repeat;

font-family: '汉仪大隶书繁';

}

.lab-card{

padding: 10px 10px 10px 20px;

background: #CCCCCC;

border-radius: 5px;

width: 40px;

float: left;

}

#mycard{

float: left;

}

form {

max-width: 640px;

margin: 24px auto;

font-size: 28px;

background: #FFFFFF;

}

label {

display: block;

margin: 10px 10px 15px;

font-size: 24px;

}

form input {

display: block;

width: 100%;

height: 40px;

font-size: 22px;

margin-top: 10px;

padding: 6px 10px;

color: #333;

border: 1px solid #CCC;

box-sizing: border-box;

}

meter, progress {

display: block;

width: 100%;

margin-top: 10px;

}

.btn {

margin-top: 30px;

}

.btn input {

color: #FFF;

background-color: green;

border: 0 none;

outline: none;

cursor: pointer;

}

效果展示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值