flask 프레임 워 크 json 데이터 가 져 오기 및 되 돌려 주기 작업 예제
json 데이터 구조:세트 표 사이트 의 도시 데 이 터 를 예 로 들 면 데 이 터 를 받 으 면 당황 하지 마라.
1.데이터 구 조 를 먼저 분석 하고 몇 개의 큰 필드 가 있 습 니 다.('returnCode'와'retuenValue'필드 는 한 필드 만 정의 하고 다른 필드 는 보류 합 니 다.(처리 할 필요 가 없습니다)
2 키 표--->'returnValue'를 나 누 어 데이터베이스 표 구 조 를 확정 합 니 다.('A'[]도시 이니셜 표 와 도시 구체 정보 필드{}표)
3.받 은 데 이 터 를 데이터베이스 에 분할 삽입 합 니 다.
4 데이터베이스 의 데 이 터 를 JSON 형식 으로 사용자 에 게 되 돌려 준다.
(a)받 은 데이터:
}
"returnCode": "0",
"returnValue": {
"A": [
{
"id": 3643,
"parentId": 0,
"regionName": " ",
"cityCode": 513200,
"pinYin": "ABA"
},
{
"id": 3090,
"parentId": 0,
"regionName": " ",
"cityCode": 652901,
"pinYin": "AKESU"
},
{
"id": 3632,
"parentId": 0,
"regionName": " ",
"cityCode": 152900,
"pinYin": "ALASHAN"
},
{
"id": 899,
"parentId": 0,
"regionName": " ",
"cityCode": 610900,
"pinYin": "ANKANG"
},
{
"id": 196,
"parentId": 0,
"regionName": " ",
"cityCode": 340800,
"pinYin": "ANQING"
},
{
"id": 758,
"parentId": 0,
"regionName": " ",
"cityCode": 210300,
"pinYin": "ANSHAN"
},
{
"id": 388,
"parentId": 0,
"regionName": " ",
"cityCode": 520400,
"pinYin": "ANSHUN"
},
{
"id": 454,
"parentId": 0,
"regionName": " ",
"cityCode": 410500,
"pinYin": "ANYANG"
}
],
B..........................................................................(b)표 구조,외부 키 models.py 구축
from App.ext import db
# ,
class Letter(db.Model):
id = db.Column(db.Integer,primary_key =True,autoincrement=True)
letter = db.Column(db.String(8),unique=True,nullable=False)
# ,
class City(db.Model):
id = db.Column(db.Integer,primary_key = True,autoincrement = True)
parentId = db.Column(db.Integer,nullable = False,defaut=0)
regionName = db.Column(db.String(30),nullable = False)
cityCode = db.Column(db.Integer)
pinYin = db.Column(db.String(128))
# ‘ '
first_letter = db.Column(db.String(8),db.ForeignKey(Letter.letter))
(c)addcities.py 데이터 삽입:
from flask_restful.representations import json
from sqlalchemy.dialects.mysql import pymysql
def add_cities():
#
db = pymysql.Connect(host= '10.0.118.135',user = 'root',password ='xxxxxxx',database = 'tpp6666',port = 3306)
cursor = db.cursor()
# ,
with open('citylist.json')as cl:
returnValue = json.load(cl).get('returnValue')
for key in returnValue:
for city in returnValue.get(key):
db.begin()
# , ,
cursor.execute(
'insert into city(id,parentId,regionName,cityCode,pinYin,first_letter) values({},{},"{}",{},"{}","{}");'.format(
city['id'], city['parentId'], city['regionName'], city['cityCode'], city['pinYin'], key))
db.commit()
if __name__ == '__main__':
add_cities()
(d)CityAPI.py 에서 데 이 터 를 읽 고 JSON 으로 되 돌려 줍 니 다.
from flask_restful import Resource, fields, marshal_with
from App.models import Letter, City
# :
city_fields = {
'id': fields.Integer,
' ': fields.Integer(attribute='parentId'),# attribute
' ': fields.String(attribute='regionName'),
' ': fields.String(attribute='pinYin'),
' ': fields.Integer(attribute='cityCode'),
' ': fields.String(attribute='first_letter')
}
value_fields = {
'A': fields.List(fields.Nested(city_fields)),
'B': fields.List(fields.Nested(city_fields)),
'C': fields.List(fields.Nested(city_fields)),
'D': fields.List(fields.Nested(city_fields)),
'E': fields.List(fields.Nested(city_fields)),
'F': fields.List(fields.Nested(city_fields)),
'G': fields.List(fields.Nested(city_fields)),
'H': fields.List(fields.Nested(city_fields)),
'J': fields.List(fields.Nested(city_fields)),
'K': fields.List(fields.Nested(city_fields)),
'L': fields.List(fields.Nested(city_fields)),
'M': fields.List(fields.Nested(city_fields)),
'N': fields.List(fields.Nested(city_fields)),
'P': fields.List(fields.Nested(city_fields)),
'Q': fields.List(fields.Nested(city_fields)),
'R': fields.List(fields.Nested(city_fields)),
'S': fields.List(fields.Nested(city_fields)),
'T': fields.List(fields.Nested(city_fields)),
'W': fields.List(fields.Nested(city_fields)),
'X': fields.List(fields.Nested(city_fields)),
'Y': fields.List(fields.Nested(city_fields)),
'Z': fields.List(fields.Nested(city_fields)),
}
result_fields = {
'returnCode': fields.Integer,
'returnValue': fields.Nested(value_fields)
}
# :
@marshal_with flask Json ,
Django 에서 json 서열 화 는 json.dumps()입 니 다.
class CityResrouce(Resource):
@marshal_with(result_fields)
def get(self):
# {},
returnValue = {}
#
letters = Letter.query.all()
for letter in letters:
#
# filter BaseQuery 。
# BaseQuery , SQL
# BaseQuery , all() BaseQuery
cities = City.query.filter(City.first_letter == letter.letter)
# dict = {letter.letter: cities}
# print(dict)
returnValue[letter.letter] = cities.all()
return {'returnCode': 0, 'returnValue': returnValue}
(d)api__init__.py:
from flask_restful import Api
from App.Apis.CityAPI import CityResrouce
from App.Apis.UserAPI import UerResource
api = Api()
def init_api(app):
api.init_app(app=app)
api.add_resource(CityResrouce, '/cities/')
본 고 에서 말 한 것 이 flask 프레임 워 크 를 바탕 으로 하 는 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(동영상) Flask API 생성기 및 보기 - 무료 제품이 문서에서 언급한 비디오 자료는 항목을 추가, 편집 및 제거할 수 있는 간단한 페이지인 API 보기를 사용하여 Flask 생성 API와 상호 작용하는 방법을 설명합니다. 이 기능으로 향상된 제품 은 Github에서...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.