相关疑难解决方法(0)

django vars in ram

我正在实现一个非常轻量级的Web项目,它只有一个页面,在图表中显示数据.我使用Django作为Web服务器,并使用d3.js作为此图的绘图例程.你可以想象,只有一些简单的时间序列必须由Django服务器响应,所以我想知道我是否可以在ram中保存这个变量.我的第一个测试是积极的,我的views.py中有类似的东西:

X = np.array([123,23,1,32,123,1])

@csrf_exempt
def getGraph(request):
    global X
    return HttpResponse(json.dumps(X))
Run Code Online (Sandbox Code Playgroud)

注意,X不时被另一个函数更新,但所有用户访问都是只读的.我需要处理吗?

  1. 通过定义全局变量来解决安全问题?
  2. 一般的不一致?

我在Django中找到了一个讨论全局变量的线程,但在这种情况下,难点在于处理多个写访问.

回答关于为什么我不希望在数据库中存储数据的潜在问题:我在我的所有数据X已经存储在一个巨大的远程数据库中,这个Web应用程序只需要显示数据.

python django global-variables

5
推荐指数
1
解决办法
256
查看次数

Django CSRF验证失败.请求已中止.-未设置CSRF cookie

我知道之前已经问过这个问题.我已经尝试了几乎所有人给出的选项,但我似乎无法解决它.我是一个完整的新手所以请让我知道我哪里出错了.

我想写一个简单的原始形式.到目前为止,我还没有实现任何身份验证或会话机制(但是从我读过的内容看这个问题并不重要.如果我错了,请纠正我).

当我尝试提交表单时,出现此错误:

Forbidden (403)
CSRF verification failed. Request aborted.

Reason given for failure:
    CSRF cookie not set.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

我的Views.py有这个方法:

def submit(request):
    global alphabet_array
    dishes = Dish.objects.all().order_by('name')
    if request.method == "POST":
        print request.POST['restaurant']
        print request.POST['rating']
        render_to_response('index.html', {}, context_instance=RequestContext(request))
    else:
        render_to_response('index.html', {}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

许多人说使用RequestContext解决了这个问题,但对我来说,即使这样也行不通.

模板如下所示:

  <form role="form" action="/submit/" method="post">{% csrf_token %}
                <div class="form-group">
                  <label for="">Restaurant Name</label>
                  <input type="text" name="restaurant" class="form-control" id="">
                </div>
                <div class="form-group">
                  <label for="">Rating</label>
                  <select class="form-control" name="rating">
                    <option>--</option>
                    <option>1 (very bad)</option>
                    <option>2 (bad)</option>
                    <option>3 (average)</option>
                    <option>4 (good)</option>
                    <option>5 (excellent)</option> …
Run Code Online (Sandbox Code Playgroud)

django django-forms

5
推荐指数
1
解决办法
2万
查看次数

Django:应用级变量

我创建了一个Django-rest-framework应用程序。它公开了一些在MySQL DB中执行一些get / set操作的API。

我有一个向另一个服务器发出HTTP请求的要求,并将此响应与通常的响应一起进行。我正在尝试使用自制的HTTP连接池来发出HTTP请求,而不是在每个请求上进行新连接。

保持此应用程序级别HTTP连接池对象最合适的位置是什么?

我一直在寻找它,并且有多种解决方案,每种都有一些缺点。这里有一些:

  1. 在diff文件中创建池的单例类,但这不是执行操作的好方法。关于为什么不使用单例设计模式有各种讨论。

    另外,我不知道合并一个池池有多聪明?(:P)

  2. 要将其保留在应用程序目录的init .py中。问题如下:
    • 它应该只包含导入和与此相关的内容。
    • 对代码进行单元测试将很困难,因为导入将在模拟之前进行,并且实际上将尝试访问API。
  3. 要使用会话,但我想如果这是特定于用户会话的内容(例如特定于用户的号码等)会更有意义

    同样,该对象需要可序列化。我不知道HTTP连接池如何序列化。

  4. 为了使它在views.py中保持全局,也不建议这样做。

存储此类应用程序/全局级别变量的最佳位置是什么?

python django global-variables django-rest-framework

5
推荐指数
1
解决办法
1472
查看次数