pythonを使用してユーザー登録ロジックを実現します.参照のみです.
2615 ワード
1.基本的な登録ロジックの実現
2.ここでコードが与えられたのはユーザーがページに入って、画像認証コードを入力しました.前のコード論理が簡単なため、コードが使えなくなりました.論理的には、ユーザーは登録ページに入り、携帯電話番号を入力し、画像検証コードを入力し、フロントエンドは検証コードの唯一コードを生成します.通常はuuid、汎用一意識別子を使用します.Linuxタイムスタンプを使用して、バックグラウンドに検証コード画像を要求し、バックグラウンドで検証コードを生成し、検証コードコードコードコードをデータベースに保存する(一般的にメモリレベルデータベースを使用する).
3.次にユーザが携帯番号を入力し、ショートメッセージの検証コードを取得するためにクリックし、ここで第三者プラットフォームを使用し、第三者が提供するSDKをさらにカプセル化して使用する.
4.ここに預け入れたのはRedisデータベースです.データベースにデータフォーマットを保存します.具体的な分析があります.
2.ここでコードが与えられたのはユーザーがページに入って、画像認証コードを入力しました.前のコード論理が簡単なため、コードが使えなくなりました.論理的には、ユーザーは登録ページに入り、携帯電話番号を入力し、画像検証コードを入力し、フロントエンドは検証コードの唯一コードを生成します.通常はuuid、汎用一意識別子を使用します.Linuxタイムスタンプを使用して、バックグラウンドに検証コード画像を要求し、バックグラウンドで検証コードを生成し、検証コードコードコードコードをデータベースに保存する(一般的にメモリレベルデータベースを使用する).
3.次にユーザが携帯番号を入力し、ショートメッセージの検証コードを取得するためにクリックし、ここで第三者プラットフォームを使用し、第三者が提供するSDKをさらにカプセル化して使用する.
4.ここに預け入れたのはRedisデータベースです.データベースにデータフォーマットを保存します.具体的な分析があります.
#
# get , , , ,
# 127.0.0.1:5000/api/v1.0/sms_codes?image_code_id=&image_code=
@api.route('/sms_codes/')
def get_sms_code(mobile):
""" """
#
image_code = request.args.get('image_code')
image_code_id = request.args.get('image_code_id')
#
if not all([image_code, image_code_id]):
#
return jsonify(errno=RET.PARAMERR, errmsg=' ')
# : redis
#
try:
real_image_code = redis_store.get('image_code_%s' % image_code_id)
except Exception as e:
current_app.logger.error(e)
return jsonify(errno=RET.DBERR, errmsg='redis ')
#
if real_image_code is None:
#
return jsonify(errno=RET.NODATA, errmsg=' ')
# ( )
if real_image_code.lower() != image_code.lower():
#
return jsonify(errno=RET.DATAERR, errmsg=' ')
#
try:
# none
user = User.query.filter_by(mobile=mobile).first()
except Exception as e:
current_app.logger.error(e) # , ,
else:
# ,user , ,
if user is not None:
#
return jsonify(errno=RET.DATAEXIST, errmsg=' ')
# ,
sms_code = '%06d' % random.randint(0, 999999)
# redis , , 300
try:
redis_store.setex('sms_code_%s' % mobile, SMS_CODE_REDIS_EXPIRES, sms_code)
except Exception as e:
current_app.logger.error(e)
#
return jsonify(errno=RET.DBERR, errmsg=' ')
#
ccp = CCP() #
result = ccp.sendTemplateSMS(mobile, [sms_code, SMS_CODE_REDIS_EXPIRES / 60], 1)
#
if result == 0:
#
return jsonify(errno=RET.OK, errmsg=' ')
else:
return jsonify(errno=RET.THIRDERR, errmsg=' ')