python - /no such table 处的 OperationalError:公共服务器上的 django_session 错误,站点在本地服务器上工作正常
问题描述
我正在尝试将从表单获取的数据发送到另一个视图页面以进行处理。我正在使用会话来发送该数据。它在本地主机上工作正常,数据发送和接收成功,但是,在公共服务器上它崩溃了。我发现了一些关于同一问题的帖子,但他们的问题主要与数据库集成有关,而这里不是这种情况。这是导致其内部views.py错误的代码:
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.templatetags.static import static
from plots.forms import plotform
from django.http import JsonResponse
#from rest_framework.views import APIView
#from rest_framework.response import Response
import numpy as np
import csv
import math
import json
def plots2(request):
if request.method == 'POST':
form = plotform(request.POST)
if form.is_valid():
frequency_min = form.cleaned_data['frequency_min']
frequency_max = form.cleaned_data['frequency_max']
distance = form.cleaned_data['distance']
humidity = form.cleaned_data['humidity']
temp = form.cleaned_data['temp']
request.session['frequency_min'] = frequency_min
request.session['frequency_max'] = frequency_max
request.session['distance'] = distance
request.session['humidity'] = humidity
request.session['temp'] = temp
return redirect('plots/')
form = plotform() #includes the form inside plots.html
#render(request, 'plots/plots2.html', {'form':form})
#return redirect(request.POST.get('next','plots/'))
#return redirect('plots/plots')
return render(request, 'plots/plots2.html', {'form':form})
def plots(request):
frequency_min_input = request.session['frequency_min']
frequency_max_input = request.session['frequency_max']
distance_input = request.session['distance']
humidity_input = request.session['humidity']
temperature_input = request.session['temp']
这是我在浏览器上遇到的错误:
Request Method: POST
Request URL: http://142.93.51.83/
Django Version: 1.8.7
Exception Type: OperationalError
Exception Value:
no such table: django_session
Exception Location: /usr/lib/python2.7/dist-
packages/django/db/backends/sqlite3/base.py in execute, line 318
Python Executable: /usr/bin/python
Python Version: 2.7.12
Python Path:
['/home/django/django_project',
'/home/django/django_project',
'/usr/bin',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']
Server time: Fri, 10 Aug 2018 00:49:07 +0000
解决方案
我不确定您是否正确设置了会话中间件。
首先,请检查您是否正确设置了 sessionmiddleware。MIDDLEWARE_CLASSES 应该有
'django.contrib.sessions.middleware.SessionMiddleware'
并将其添加到 django 应用程序中。INSTALLED_APPS 应该有
'django.contrib.sessions'
并再次生成迁移/迁移应用程序。
python manage.py makemigrations
python manage.py 迁移
推荐阅读
- python - 最小堆插入功能无法正常工作
- react-native - 测试套件无法使用 @react-navigation/stack 运行
- tensorflow - 尝试在 VGG16 模型上运行推理:InvalidArgumentError: value for attr 'N' of 1 must be at least minimum 2
- android - 如果 TextField 的大小增加,则 Compose Column 内容变得无法访问
- node.js - 2checkout支付授权在React中失败
- react-redux - 如何使用布局组件并使用 React Redux 工具包更改带有 ID 的数据
- javascript - 下拉菜单绑定
- react-native - 未定义不是对象(评估“Amazon.trim”)在本机反应中
- c++ - 由函数指针初始化的 std::function 的异常安全
- android-fragments - CameraX 的预览 SurfaceView 与 ViewPager 无法正常工作