色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python - Flask寫(xiě)的注冊(cè)頁(yè)面,當(dāng)注冊(cè)時(shí),如果填寫(xiě)數(shù)據(jù)庫(kù)里有的相同數(shù)據(jù),就報(bào)錯(cuò)

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

問(wèn)題描述

Flask寫(xiě)的注冊(cè)頁(yè)面,當(dāng)注冊(cè)時(shí),如果填寫(xiě)數(shù)據(jù)庫(kù)里有的相同數(shù)據(jù),就報(bào)錯(cuò)

想知道如何解決

注冊(cè)路由代碼

python - Flask寫(xiě)的注冊(cè)頁(yè)面,當(dāng)注冊(cè)時(shí),如果填寫(xiě)數(shù)據(jù)庫(kù)里有的相同數(shù)據(jù),就報(bào)錯(cuò)

注冊(cè)頁(yè)面代碼

python - Flask寫(xiě)的注冊(cè)頁(yè)面,當(dāng)注冊(cè)時(shí),如果填寫(xiě)數(shù)據(jù)庫(kù)里有的相同數(shù)據(jù),就報(bào)錯(cuò)

報(bào)錯(cuò)

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 -

問(wèn)題解答

回答1:

你應(yīng)該先檢查是否此用戶(hù)已經(jīng)注冊(cè),沒(méi)注冊(cè)再db.session.add()。 如果非要想更新主鍵或unique的記錄,可以試試db.session.merge()。 其實(shí)執(zhí)行的是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是否設(shè)置了主鍵id?

回答3:

ix_users_username不能是重復(fù)的,換個(gè)username試試

回答4:

username unique

回答5:

我在前面加了個(gè)查詢(xún)判斷 可以了

@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('當(dāng)前用戶(hù)名已經(jīng)注冊(cè)!') return render_template('/register.html', form=form)else: flash('注冊(cè)成功!') db.session.merge(user) return render_template('/register.html', form=form) return render_template('/register.html', form=form)

python - Flask寫(xiě)的注冊(cè)頁(yè)面,當(dāng)注冊(cè)時(shí),如果填寫(xiě)數(shù)據(jù)庫(kù)里有的相同數(shù)據(jù),就報(bào)錯(cuò)

標(biāo)簽: Python 編程
主站蜘蛛池模板: 作爱视频在线免费观看 | 一级一片免费播放 | 中文字幕成人免费高清在线 | 国产一区二区久久精品 | 九久久 | 日韩在线三级视频 | 欧美成人亚洲欧美成人 | 精品国产免费人成在线观看 | 国产成人高清一区二区私人 | 亚洲欧美日韩在线不卡中文 | 在线观看亚洲天堂 | 天堂一区二区三区在线观看 | 精品一区二区三区在线播放 | 国产在线观看网址你懂得 | 欧美精品成人久久网站 | 国产男女爽爽爽免费视频 | 91精品国产手机 | 国产伦精一区二区三区视频 | 亚洲美女视频在线观看 | 国产精品成人免费观看 | 日本韩国台湾香港三级 | 99视频有精品视频免费观看 | 在线成人a毛片免费播放 | 欧美一级欧美三级在线观看 | 亚洲 欧美 手机 在线观看 | 亚洲好视频 | 亚洲一区免费在线 | 爆操巨乳美女 | 欧美成人久久久免费播放 | 无内丝袜透明在线播放 | 成人a级高清视频在线观看 成人a毛片 | 99久久国产综合精品网成人影院 | 欧美另类videosbestsex视频 | 欧美一区二区三区视视频 | 久久r这里只有精品 | 日韩欧美国产另类 | 国产真真人女人特级毛片 | 成人全黄三级视频在线观看 | 亚洲 欧美 精品专区 极品 | 毛片免费在线视频 | 日韩三级一区 |