在这里你可以看到用户模型及其方法
class User:
def __init__(self, db, data, *kw):
self.db = db
self.username = data[0]
self.pass_hash = argon2.argon2_hash(data[1], salt=b'salty salt')
async def check_user(self, **kw):
async with self.db.acquire() as conn:
user = await conn.execute(users.select().where(users.c.username == self.username))
return user
async def create_user(self, **kw):
user = await self.check_user()
if not user:
async with self.db.acquire() as conn:
await conn.execute(
users.insert().values(username=self.username,
pass_hash=self.pass_hash))
result = 'Success'
else:
result = 'User exists'
return result
有两个功能,第一个是检查用户是否存在于数据库中,第二个是添加一个新用户到数据库。所以主要问题是 create_user 函数工作正常,但如果我在那里添加一个 check_user,什么都不会发生。在下面查看我调用此函数的视图方法
async def signin(request):
data = [request.rel_url.query['username'],
request.rel_url.query['pass_hash']]
user = User(request.app['db'], data)
result = await user.create_user()
if isinstance(result, ObjectId):
return web.Response(content_type='application/json', text=convert_json(result))
有人可以告诉我有什么问题吗?日志是空的,我没有收到任何错误,但也没有任何反应。自由回答。感谢大家