我正在嘗試構建Flask API,並且我有一個端點應該創建一個用戶,另一個端點應該檢查用戶是否存在於數據庫中:使用Flask從API調用端點的正確方法
@API.route('/users/', methods=['POST'])
def new_user():
user_json = json.loads(request.get_json())
first_name = user_json.get('first_name')
last_name = user_json.get('last_name')
email = user_json.get('email')
password = user_json.get('password')
# Call the other endpoint here
if response == 400:
try:
user = User(first_name=first_name, last_name=last_name, email=email, password=password)
db.session.add(user)
db.session.commit()
return jsonify(user=user.to_json()), 200
except:
return jsonify(error=500), 500
else:
return jsonify(user=user.to_json()), 409
@API.route('/users/<string:email>', methods=['GET'])
def is_present(email):
user = User.query.filter_by(email=email).first()
if user:
print(user)
return jsonify(user=user.to_json()), 200
else:
return jsonify(error=404), 404
的問題是我不知道什麼是叫我is_present
在new_user
終點的最佳途徑。我應該使用requests.get
?或者在Flask中是否有特定的其他人這樣做?
的小費好,謝謝!我想正確地編寫代碼,我應該在哪裏放置函數'get_user'到我的倉庫中?如果我仍然有需要訪問另一個端點的端點,我應該怎麼做? – mel
如果你堅持發出HTTP請求,'requests'是個不錯的選擇。 Flask確實提供了['test_client()'](http://flask.pocoo.org/docs/0.12/api/#flask.Flask.test_client),所以如果你能克服它被命名爲「test 「客戶端,而不是通用的HTTP客戶端。 – mhawke
把'get_user()'放在哪裏?如果你有一個模型文件,它可以去那裏,否則無論'User'類聲明哪裏都是最好的地方。 – mhawke