我一直在python 2.7中试验装饰器并尝试在空闲时进行设置:
def logme(func):
def wrapped(*args):
for arg in args: print str(arg)
func(*args)
return wrapped
@logme
def my_func(*args):
res = 1
for arg in args :
print "Multiplying %s by %s" % (arg, res)
res*=arg
print res
return res
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
2
3
Multiplying 2 by 1
Multiplying 3 by 2
6
Run Code Online (Sandbox Code Playgroud)
所以res值是对的.但是,当我尝试通过这个存储res值时:
x = my_func(2,3)
Run Code Online (Sandbox Code Playgroud)
价值x是None.它是否正确?如果没有,我在这里做错了什么?
我将通过在views.py中将ListView子类化来实现基于自定义类的通用视图。我的问题是如何在我的子类中访问请求(HttpRequest对象)参数?我所属的HttpRequest对象是views.py中所有函数的默认请求参数。例:
def search(request):
Run Code Online (Sandbox Code Playgroud)
更清楚地说,这是我到目前为止已经尝试的方法:
** views.py
class CustomListView(ListView):
temp = ""
def get(self, request, *args, **kwargs):
self.temp = request.GET.get('temp')
return super(CustomListView, self).get(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super(CustomListView, self).get_context_data(**kwargs)
context['temp'] = self.temp
return context
Run Code Online (Sandbox Code Playgroud)
** urls.py
url(r'^temp/$, CustomListView.as_view(queryset=Document.objects.all()[:1],template_name="temp.html")),
Run Code Online (Sandbox Code Playgroud)
** temp.html
{% extends 'base.html' %}
{% block content %}
<h2>{{ temp }}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行服务器并访问/ temp /(temp.html)时,所看到的只是“无”。因此,“ temp”为“”或“ temp”根本没有创建。
任何想法都将不胜感激。谢谢!
在运行实际/主脚本之前,有没有办法首先包含/调用 python 模块(依赖项)安装?
例如,在我的 main.py 中:
import os, sys
import MultipartPostHandler
def main():
# do stuff here
Run Code Online (Sandbox Code Playgroud)
但是 MultipartPostHandler 还没有安装,所以我想要的是在实际运行 main.py 之前先安装它......但是以自动化的方式。当我说自动时,我的意思是我只会调用脚本一次以启动依赖项安装,然后是主脚本的实际功能。(不知何故,有点类似于maven。但我只需要安装部分)
我已经知道 setuptools 的基础知识。问题是我可能必须分别调用安装 (setup.py) 和主脚本 (main.py)。
任何想法都非常感谢。提前致谢!
对于 404s 和 500s/502s/504s 错误,我返回自定义 JSON 错误页面:
{
"response":
{
"status": "EXCEPTION_404_NOT_FOUND",
}
}
Run Code Online (Sandbox Code Playgroud)
在我的sites-enabled/service_nginx.conf中,我将其设置如下:
error_page 404 /404.json;
location /404.json {
internal;
root /temp/error_response_templates;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常。也就是说,每次 404 都会返回 JSON。但我想将请求或一些请求详细信息添加到返回的 JSON 中。例如,对于http://service.com/param1/param2/,如果遇到 404,我想在返回的 JSON 中包含 param1 和 param2。像这样:
{
"response":
{
"status":"EXCEPTION_404_NOT_FOUND",
"param1":<param1 value>,
"param2":<param2 value>,
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是,有人可以帮我怎么做吗?提前致谢!
我有一个应用程序在settings.py中使用'Asia/Taipei'作为其时区,并在models.py上的datetimefield之一上使用auto_now = true:
--- settings.py ---
TIME_ZONE = 'Asia/Taipei'
--- models.py ---
models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)
在我的系统上,台北也被用作我的时区:

在MySQL Workbench上,我已经查询了全局和会话tz,它们的返回值是"SYSTEM":

我的问题是当一个条目添加到DB时,系统上和settings.py上指定的时区未被使用.查看示例快照:

我缺少什么?做错了?提前致谢!