Я создаю простой REST с использованием Flask-RESTPlus для получения всех пользовательских данных GitHub от их конкретного имени пользователя.
Я получил результат в формате JSON.Но теперь я хочу вставить результат в свою базу данных.
Я объявил столбцы моей модели с тем же именем и ключом в результате JSON.Вот фрагмент моей модели:
class User(db.Model):
__tablename__ = "user_v2"
id = db.Column(db.Integer, primary_key=True, index=True)
login = db.Column(db.String, unique=True, index=True)
node_id = db.Column(db.String)
avatar_url = db.Column(db.String)
и, скажем, результат от API был таким:
{
"login": "trinanda",
"id": 25479663,
"node_id": "MDQ6VXNlcjI1NDc5NjYz",
"avatar_url": "https://avatars2.githubusercontent.com/u/25479663?v=4"
}
Есть ключ на результат был такой же с моим именем столбцовс моими моделями.
Я пытался вставить результат с этим кодом, но меня смущает то, что он дает мне нулевое значение во всех моих пользовательских столбцах.
class UserResource(Resource):
def post(self):
schema = UserSchema()
github_field = request.json
username = github_field.get('username')
github_user_data = get_github_user_data(username)
user = User(**github_user_data)
try:
db.session.add(user)
db.session.commit()
except Exception as e:
return str(e)
return {
'status': 'success',
'user': schema.dump(user).data
}
Итак ...Суть моих вопросов в том, как вставить результат JSON в базу данных ..?
РЕДАКТИРОВАТЬ: Вот мой github_user_data
:
import requests
github_scraper_url = 'https://api.github.com/users/'
def get_github_user_data(username):
response = requests.get(github_scraper_url+username)
return response.json()