Da ich in der Lernsitzung etwas über API gelernt habe, habe ich versucht, eine einfache REST-API in Python zu implementieren. Da die Installationsmethode von Python an anderer Stelle erklärt wird, werde ich sie weglassen.
Mit Flask, einem Webanwendungsframework Installieren Sie Peewee of ORM.
$ pip install flask
$ pip install peewee
Importieren Sie die folgenden Daten in die Datenbank.
user.tsv
#userId userCompany userDiscountRate
Us0ymuik Dense Forest Compliance Printing 46
Us77qmr2 West Japan Dense Forest Entertainment 49
Usdj7ej1 Dschungellösung 18
Usjx15uh Yokohama Riesige harte weiche 7
Usqd7wpe Face book credit 1
Uswvrn3s Golden Mobile Solution 7
Us3h2d0a Benza Social Gaming-Lösung 26
Usa4c2hm Virtualware Social Gaming-Branche 7
.
.
.
Stellen Sie mit Peewee eine Verbindung zur Datenbank her und registrieren Sie die Daten.
import.py
# -*- coding: utf-8 -*-
import peewee
#Datenbank angeben
db = peewee.SqliteDatabase("data.db")
#Benutzermodell definieren
class User(peewee.Model):
userId = peewee.TextField()
userCompany = peewee.TextField()
userDiscountRate = peewee.IntegerField()
class Meta:
database = db
#Erstellung von Benutzertabellen
User.create_table()
#Lesen Sie die tsv-Datei zeilenweise, teilen Sie sie durch Registerkarten und registrieren Sie sie in der Datenbank
for line in open("user.tsv", "r"):
(userId, userCompany, userDiscountRate) = tuple(line[:-1].split("\t"))
if userDiscountRate.isdigit(): #Unterstützt Kommentare in der ersten Zeile.
User.create(userId = userId,
userCompany = userCompany,
userDiscountRate = int(userDiscountRate))
api.py
# -*- coding: utf-8 -*-
from flask import Flask, jsonify, abort, make_response
import peewee
# import json
db = peewee.SqliteDatabase("data.db")
class User(peewee.Model):
userId = peewee.TextField()
userCompany = peewee.TextField()
userDiscountRate = peewee.IntegerField()
class Meta:
database = db
api = Flask(__name__)
@api.route('/getUser/<string:userId>', methods=['GET'])
def get_user(userId):
try:
user = User.get(User.userId == userId)
except User.DoesNotExist:
abort(404)
result = {
"result":True,
"data":{
"userId":user.userId,
"userCompany":user.userCompany,
"userDiscountRate":user.userDiscountRate
}
}
return make_response(jsonify(result))
#Wenn Sie es nicht Unicode machen möchten ↓
# return make_response(json.dumps(result, ensure_ascii=False))
@api.errorhandler(404)
def not_found(error):
return make_response(jsonify({'error': 'Not found'}), 404)
if __name__ == '__main__':
api.run(host='0.0.0.0', port=3000)
$ curl -i http://0.0.0.0:3000/getUser/Usdj7ej1
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 118
Server: Werkzeug/0.11.10 Python/3.5.1
Date: Fri, 27 May 2016 06:29:57 GMT
{"data": {"userCompany": "Dichte Waldlösung", "userDiscountRate": 18, "userId": "Usdj7ej1"}, "result": true}%
Recommended Posts