【发布时间】:2016-07-06 14:23:35
【问题描述】:
有人遇到过这样的错误吗?当我尝试使用表单登录并检查 mysql 中的数据时,出现错误:
Request Method: POST
Request URL: http://tesmyapp.loc/post/login/
Django Version: 1.9.7
Exception Type: OperationalError
Exception Value:
near "????????������????????����": **syntax error**
Exception Location: /myapp/env/lib/python2.7/site-packages/django/db/backends/sqlite3/operations.py in _quote_params_for_last_executed_query, line 129
Python Executable: /myapp/env/bin/uwsgi
我不确定这是mysql的错误,因为当我尝试在不检查数据库的情况下发布时,错误仍然出现
views.py 中的函数
@csrf_protect
def post_login(request):
if request.method == 'POST':
username = request.POST.get("username", "")
password = request.POST.get("password", "")
mylogin = check_login(username, password)
if mylogin > 0:
occur = "success"
request.session['member'] = username
return HttpResponseRedirect("/home")
如果有人遇到此错误,请分享解决方案。谢谢
追溯:
Environment:
Request Method: POST
Request URL: http://tesmyapp.loc/post/login/
Django Version: 1.9.7
Python Version: 2.7.12
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'login']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/myapp/env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
235. response = middleware_method(request, response)
File "/myapp/env/lib/python2.7/site-packages/django/contrib/sessions/middleware.py" in process_response
50. request.session.save()
File "/myapp/env/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in save
80. return self.create()
File "/myapp/env/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in create
49. self._session_key = self._get_new_session_key()
File "/myapp/env/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py" in _get_new_session_key
158. if not self.exists(session_key):
File "/myapp/env/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in exists
45. return self.model.objects.filter(session_key=session_key).exists()
File "/myapp/env/lib/python2.7/site-packages/django/db/models/query.py" in exists
651. return self.query.has_results(using=self.db)
File "/myapp/env/lib/python2.7/site-packages/django/db/models/sql/query.py" in has_results
501. return compiler.has_results()
File "/myapp/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in has_results
819. return bool(self.execute_sql(SINGLE))
File "/myapp/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
848. cursor.execute(sql, params)
File "/myapp/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
83. sql = self.db.ops.last_executed_query(self.cursor, sql, params)
File "/myapp/env/lib/python2.7/site-packages/django/db/backends/sqlite3/operations.py" in last_executed_query
140. params = self._quote_params_for_last_executed_query(params)
File "/myapp/env/lib/python2.7/site-packages/django/db/backends/sqlite3/operations.py" in _quote_params_for_last_executed_query
129. return cursor.execute(sql, params).fetchone()
Exception Type: OperationalError at /login
Exception Value: near "????????������????????����": syntax error
python manage.py 迁移:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/myapp/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/myapp/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/myapp/env/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/myapp/env/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/myapp/env/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 89, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/myapp/env/lib/python2.7/site-packages/django/db/migrations/executor.py", line 20, in __init__
self.loader = MigrationLoader(self.connection)
File "/myapp/env/lib/python2.7/site-packages/django/db/migrations/loader.py", line 49, in __init__
self.build_graph()
File "/myapp/env/lib/python2.7/site-packages/django/db/migrations/loader.py", line 176, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/myapp/env/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 65, in applied_migrations
self.ensure_schema()
File "/myapp/env/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 59, in ensure_schema
raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf1 in position 6: ordinal not in range(128)
【问题讨论】:
-
你能发布完整的堆栈跟踪吗?
-
我刚刚编辑了我的问题@Siva 感谢您的回复
-
鉴于堆栈跟踪不包含views.py,我想知道您是否在其他地方遇到此错误,例如在做
> python manage.py migrate时? -
我刚刚意识到我无法进行迁移,我的问题更新为错误@raphv
-
您能否确保您的模型和表格名称仅使用 ASCII 字符。此外,如果您在文件中使用特殊字符(例如,对于详细名称),您能否确保将正确的编码标头添加到文件中?
# -*- coding: utf-8 -*-
标签: django