亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:105日期: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 編程
主站蜘蛛池模板: 久热国产视频 | 久久精品国产主播一区二区 | 97久久天天综合色天天综合色hd | 亚洲永久精品免费www52zcm男男 | 鲁大师视频在线观看免费播放 | 网友自拍视频 | 亚洲欧美另类国产综合 | 不卡的 | 国产午夜亚洲精品一区网站 | 91大神大战酒店翘臀美女 | 国产精品亚洲欧美云霸高清 | 免费啪啪小视频 | 成人区精品一区二区不卡亚洲 | 影音先锋日韩资源 | 免费超爽大片黄网站 | 男人你懂的在线观看视频 | 亚洲欧美在线中文字幕不卡 | 青青草91| 国产91色综合久久免费 | 99re在线这里只有精品 | 精品国产免费久久久久久 | 久久在线视频 | 黄色小视频在线看 | 国产精品高清一区二区三区 | 亚洲高清在线观看看片 | 日本高清不卡一区久久精品 | 成人毛片18岁女人毛片免费看 | 亚洲一区二区免费在线观看 | 国产高清免费在线观看 | 青青操国产 | 国模大胆偷拍在线视频 | 国产成人精品在视频 | 亚洲一区二区三区精品影院 | 久爱www成人网免费视频 | 青娱乐久草 | 欧美午夜a级精美理论片 | 污污网站在线免费观看 | 黄色短视频免费看 | 精品在线免费视频 | 亚洲精品久久久久久婷婷 | 一级做a爰片性色毛片刺激 一级做a爰片性色毛片视频图片 |