Python 百度ai身份证接口案例
调用百度Ai
完成一个学生信息录入的网页小案例
添加图片,身份证信息对号入座

官方文档中心:https://ai.baidu.com/docs#/OCR-API/7e4792c7
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) { // basicurl = window.createObjectURL(file);}else if (window.URL != undefined) {// mozilla(firefox)url = window.URL.createObjectURL(file);}else if (window.webkitURL != undefined) {// webkit or chromeurl = 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;} 效果展示:

转载于:https://www.cnblogs.com/donghaoblogs/p/10389701.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
