返回200,但是没有写入数据库,AttributeError: can't set attribute
来源:4-6 生成用户数据

夏目鲸鱼
2018-08-25
报错相关的代码: @api.route('/register', methods=['POST']) def create_client(): data = request.json form = ClientForm(data=data) # 在实例化ClientForm的时候是否会自动调用自带的验证方法validate_type if form.validate(): print('127890~~~~~~~') promise = { ClientTypeEnum.USER_EMAIL: __register_user_by_email } print(form.type.data) promise[form.type.data]() return 'success' def __register_user_by_email(): form = UserEmailForm(data=request.json) if form.validate(): print(form.nickname.data) User.register_by_email(form.nickname.data, form.account.data, form.secret.data) else: print('validation error~') class UserEmailForm(Form): account = StringField(validators=[Email('invalidate email')]) secret = StringField(validators=[DataRequired(), Regexp(r'^[A-Za-z0-9_*&$#@]{6,22}$')]) nickname = StringField(validators=[DataRequired(), length(min=2, max=22)]) def validate_account(self, value): if User.query.filter_by(email=value.data).first(): raise ValidationError() POST请求: {"account":"777@qq.com", "secret":"123456", "type":100, "nickname":"natume"} 服务器响应: 127890~~~~~~~ ClientTypeEnum.USER_EMAIL natume 123456 127.0.0.1 - - [25/Aug/2018 10:57:31] "POST /v1/client/register HTTP/1.1" 500 - Traceback (most recent call last): File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/app.py", line 2301, in __call__ return self.wsgi_app(environ, start_response) File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/app.py", line 2287, in wsgi_app response = self.handle_exception(e) File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/app.py", line 1733, in handle_exception reraise(exc_type, exc_value, tb) File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise raise value File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/app.py", line 2284, in wsgi_app response = self.full_dispatch_request() File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/app.py", line 1807, in full_dispatch_request rv = self.handle_user_exception(e) File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/app.py", line 1710, in handle_user_exception reraise(exc_type, exc_value, tb) File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise raise value File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/app.py", line 1805, in full_dispatch_request rv = self.dispatch_request() File "/Users/renyiguang/.local/share/virtualenvs/ginger-NkPelh6d/lib/python3.6/site-packages/flask/app.py", line 1791, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/Users/renyiguang/Project/flask-api/ginger/app/api/v1/client.py", line 22, in create_client promise[form.type.data]() File "/Users/renyiguang/Project/flask-api/ginger/app/api/v1/client.py", line 32, in __register_user_by_email form.secret.data) File "/Users/renyiguang/Project/flask-api/ginger/app/models/user.py", line 28, in register_by_email user.password = secret AttributeError: can't set attribute
写回答
1回答
-
你先把错误解决了啊,没写入这个肯定是因为 这里代码写错了呀。
142018-09-05
相似问题
数据库能生成表,但是数据没有写入到表里
回答 1
数据库数据无法写入
回答 1