国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python - Flask寫的注冊頁面,當注冊時,如果填寫數據庫里有的相同數據,就報錯

瀏覽:117日期:2022-09-15 17:24:38

問題描述

Flask寫的注冊頁面,當注冊時,如果填寫數據庫里有的相同數據,就報錯

想知道如何解決

注冊路由代碼

python - Flask寫的注冊頁面,當注冊時,如果填寫數據庫里有的相同數據,就報錯

注冊頁面代碼

python - Flask寫的注冊頁面,當注冊時,如果填寫數據庫里有的相同數據,就報錯

報錯

E:PythonPython35-32libsite-packagespymysqlcursors.py:166: Warning: (1366, 'Incorrect string value: ’xD6xD0xB9xFAxB1xEA...’ for column ’VARIABLE_VALUE’ at row 479') result = self._query(query)127.0.0.1 - - [21/Feb/2017 09:17:37] 'POST /register HTTP/1.1' 200 -Debugging middleware caught exception in streamed response at a point where response headers were already sent.Traceback (most recent call last): File 'E:PythonPython35-32libsite-packagesflaskapp.py', line 2000, in __call__ return self.wsgi_app(environ, start_response) File 'E:PythonPython35-32libsite-packagesflaskapp.py', line 1996, in wsgi_app ctx.auto_pop(error) File 'E:PythonPython35-32libsite-packagesflaskctx.py', line 387, in auto_pop self.pop(exc) File 'E:PythonPython35-32libsite-packagesflaskctx.py', line 376, in pop app_ctx.pop(exc) File 'E:PythonPython35-32libsite-packagesflaskctx.py', line 189, in pop self.app.do_teardown_appcontext(exc) File 'E:PythonPython35-32libsite-packagesflaskapp.py', line 1898, in do_teardown_appcontext func(exc) File 'E:PythonPython35-32libsite-packagesflask_sqlalchemy__init__.py', line 822, in shutdown_session self.session.commit() File 'E:PythonPython35-32libsite-packagessqlalchemyormscoping.py', line 157, in do return getattr(self.registry(), name)(*args, **kwargs) File 'E:PythonPython35-32libsite-packagessqlalchemyormsession.py', line 874, in commit self.transaction.commit() File 'E:PythonPython35-32libsite-packagessqlalchemyormsession.py', line 461, in commit self._prepare_impl() File 'E:PythonPython35-32libsite-packagessqlalchemyormsession.py', line 441, in _prepare_impl self.session.flush() File 'E:PythonPython35-32libsite-packagessqlalchemyormsession.py', line 2139, in flush self._flush(objects) File 'E:PythonPython35-32libsite-packagessqlalchemyormsession.py', line 2259, in _flush transaction.rollback(_capture_exception=True) File 'E:PythonPython35-32libsite-packagessqlalchemyutillanghelpers.py', line 60, in __exit__ compat.reraise(exc_type, exc_value, exc_tb) File 'E:PythonPython35-32libsite-packagessqlalchemyutilcompat.py', line 187, in reraise raise value File 'E:PythonPython35-32libsite-packagessqlalchemyormsession.py', line 2223, in _flush flush_context.execute() File 'E:PythonPython35-32libsite-packagessqlalchemyormunitofwork.py', line 389, in execute rec.execute(self) File 'E:PythonPython35-32libsite-packagessqlalchemyormunitofwork.py', line 548, in execute uow File 'E:PythonPython35-32libsite-packagessqlalchemyormpersistence.py', line 181, in save_obj mapper, table, insert) File 'E:PythonPython35-32libsite-packagessqlalchemyormpersistence.py', line 835, in _emit_insert_statements execute(statement, params) File 'E:PythonPython35-32libsite-packagessqlalchemyenginebase.py', line 945, in execute return meth(self, multiparams, params) File 'E:PythonPython35-32libsite-packagessqlalchemysqlelements.py', line 263, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File 'E:PythonPython35-32libsite-packagessqlalchemyenginebase.py', line 1053, in _execute_clauseelement compiled_sql, distilled_params File 'E:PythonPython35-32libsite-packagessqlalchemyenginebase.py', line 1189, in _execute_context context) File 'E:PythonPython35-32libsite-packagessqlalchemyenginebase.py', line 1393, in _handle_dbapi_exception exc_info File 'E:PythonPython35-32libsite-packagessqlalchemyutilcompat.py', line 203, in raise_from_cause reraise(type(exception), exception, tb=exc_tb, cause=cause) File 'E:PythonPython35-32libsite-packagessqlalchemyutilcompat.py', line 186, in reraise raise value.with_traceback(tb) File 'E:PythonPython35-32libsite-packagessqlalchemyenginebase.py', line 1182, in _execute_context context) File 'E:PythonPython35-32libsite-packagessqlalchemyenginedefault.py', line 470, in do_execute cursor.execute(statement, parameters) File 'E:PythonPython35-32libsite-packagespymysqlcursors.py', line 166, in execute result = self._query(query) File 'E:PythonPython35-32libsite-packagespymysqlcursors.py', line 322, in _query conn.query(q) File 'E:PythonPython35-32libsite-packagespymysqlconnections.py', line 835, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File 'E:PythonPython35-32libsite-packagespymysqlconnections.py', line 1019, in _read_query_result result.read() File 'E:PythonPython35-32libsite-packagespymysqlconnections.py', line 1302, in read first_packet = self.connection._read_packet() File 'E:PythonPython35-32libsite-packagespymysqlconnections.py', line 981, in _read_packet packet.check_error() File 'E:PythonPython35-32libsite-packagespymysqlconnections.py', line 393, in check_error err.raise_mysql_exception(self._data) File 'E:PythonPython35-32libsite-packagespymysqlerr.py', line 107, in raise_mysql_exception raise errorclass(errno, errval)sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1062, 'Duplicate entry ’123’ for key ’ix_users_username’') [SQL: ’INSERT INTO users (username, password) VALUES (%(username)s, %(password)s)’] [parameters: {’username’: ’123’, ’password’: ’123’}]127.0.0.1 - - [21/Feb/2017 09:17:42] 'POST /register HTTP/1.1' 200 -

問題解答

回答1:

你應該先檢查是否此用戶已經注冊,沒注冊再db.session.add()。 如果非要想更新主鍵或unique的記錄,可以試試db.session.merge()。 其實執行的是select+update

回答2:

sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1062, 'Duplicate entry ’123’ for key ’ix_users_username’') [SQL: ’INSERT INTO users (username, password) VALUES (%(username)s, %(password)s)’] [parameters: {’username’: ’123’, ’password’: ’123’}]

mysql是否設置了主鍵id?

回答3:

ix_users_username不能是重復的,換個username試試

回答4:

username unique

回答5:

我在前面加了個查詢判斷 可以了

@app.route('/register', methods=['GET', 'POST'])def register(): form = RegisterForm() if form.validate_on_submit():user = User( username=form.username.data, password=form.password.data)if(User.query.filter_by(username=user.username).first()): flash('當前用戶名已經注冊!') return render_template('/register.html', form=form)else: flash('注冊成功!') db.session.merge(user) return render_template('/register.html', form=form) return render_template('/register.html', form=form)

python - Flask寫的注冊頁面,當注冊時,如果填寫數據庫里有的相同數據,就報錯

標簽: Python 編程
主站蜘蛛池模板: 国产在线不卡午夜精品2021 | 91香蕉嫩草| 欧美成年| 国产亚洲精品2021自在线 | 日本一本色道 | 美女被男人cao的爽视频黄 | 国产在线视频一区二区三区 | 国产福利不卡一区二区三区 | 国产成人精品一区 | 国产精品自在欧美一区 | 色视频一区二区三区 | 亚洲九九| 欧美激情伦妇在线观看 | 国产在线欧美日韩精品一区二区 | 久久久网久久久久合久久久久 | 国产精品视频一区二区猎奇 | 国产乱码精品一区二区三区中 | 99在线观看免费视频 | 5388国产亚洲欧美在线观看 | 玖草在线资源 | 日本www高清免费视频观看 | 99精品国产在热久久 | 一级做a爱片特黄在线观看免费看 | 欧美高h视频 | 岛国毛片在线观看 | 国产精品亚洲精品日韩已满 | 在线观看亚洲人成网站 | 久久久久久久久久久视频国内精品视频 | 国产成人精品系列在线观看 | 三级毛片在线 | 国产盗摄视频 | 波多野结衣一区二区三区在线观看 | 国产精品成人观看视频国产 | 久久综合婷婷香五月 | 午夜国产精品不卡在线观看 | 韩国免费一级成人毛片 | 国产91精品高清一区二区三区 | 日本在线亚洲 | 精品一区二区在线欧美日韩 | 日韩三级影院 | 成人性动漫高清免费观看网址 |