一个Django应用程序在AWS实例上运行,通过gunicorn和nginx配置,它运行良好一年多了,但是突然,我收到了502 bad gateway错误,然后我在nginx错误日志中看到了下面提到的消息,
2017/05/17 16:18:35 [error] 1040#0: *7460 connect() to unix:/home/ubuntu/webapps/myproject/myproject/myproject.sock failed (111: Connection refused) while connecting to upstream, client: xx.xxxx.xx.xxx, server: xx.xx.xx.xxx, request: "GET / HTTP/1.1", upstream: "http://unix:/home/ubuntu/webapps/myproject/myproject/myproject.sock:/", host: "xx.xx.xx.xxx", referrer: "http://xx.xx.xx.xxx"
Run Code Online (Sandbox Code Playgroud)
我的 nginx 配置:
server {
client_max_body_size 200M;
listen 80;
listen [::]:80 ipv6only=on;
server_name xx.xx.xx.xxx;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/myserver.crt;
ssl_certificate_key /etc/nginx/ssl/myserver.key;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/webapps/myproject/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/ubuntu/webapps/myproject/myproject/myproject.sock;
proxy_set_header X-Forwarded-Protocol $scheme;
} …Run Code Online (Sandbox Code Playgroud) 我有一个带有字段验证器的模型
from django.db import models
from django.core.validators import MinValueValidator, MaxValueValidator
class MyModel(model.Model):
name = models.CharField()
size = models.IntegerField(validators=[MinValueValidator(1),MaxValueValidator(10)])
Run Code Online (Sandbox Code Playgroud)
验证器在django管理面板中运行良好,当我尝试输入超过10的值时,它显示错误消息"确保此值小于或等于10"并且不允许保存.
但是,当我在django shell中尝试时,验证器不起作用,它允许保存记录,我不知道验证器为什么不在这里抛出错误信息.
>>>form app.models import MyModel
>>>MyModel.objects.create(name="Some Name", size=15)
<MyModel: Some Name>
Run Code Online (Sandbox Code Playgroud)
如果我错过了什么,或者我在这里犯了什么错误,请你建议我.请帮我解决这个问题,对我来说非常好,谢谢你.
我在 dict 格式列表中有一组数据,如下所示:
data = [
{'name': 'A', 'tea':5, 'coffee':6},
{'name': 'A', 'tea':2, 'coffee':3},
{'name': 'B', 'tea':7, 'coffee':1},
{'name': 'B', 'tea':9, 'coffee':4},
]
Run Code Online (Sandbox Code Playgroud)
我正在尝试按“名称”分组,并分别将“茶”和“咖啡”相加
最终分组的数据必须采用以下格式:
grouped_data = [
{'name': 'A', 'tea':7, 'coffee':9},
{'name': 'B', 'tea':16, 'coffee':5},
]
Run Code Online (Sandbox Code Playgroud)
我尝试了一些步骤:
from collections import Counter
c = Counter()
for v in data:
c[v['name']] += v['tea']
my_data = [{'name': name, 'tea':tea} for name, tea in c.items()]
for e in my_data:
print e
Run Code Online (Sandbox Code Playgroud)
上述步骤返回以下输出:
{'name': 'A', 'tea':7,}
{'name': 'B', 'tea':16}
Run Code Online (Sandbox Code Playgroud)
只有我可以总结关键的“茶”,我不能得到关键的“咖啡”的总和,你们能帮忙解决这个解决方案以获得 grouped_data 格式
我有一些值的列表
mylist = ['1', 'Tom', 'Jerry', '2', 'Sinchan', 'Shero']
Run Code Online (Sandbox Code Playgroud)
我的预期产量
[{'id': '1', 'mod': ['Tom', 'Jerry']}, {'id': '2', 'mod': ['Sinchan', 'Shero']}]
Run Code Online (Sandbox Code Playgroud)
我试试看
mylist = ['1', 'Tom', 'Jerry', '2', 'Sinchan', 'Shero']
data_list = []
mod = []
for i in mylist:
if i.isdigit() == True:
data = {}
data['id'] = i
data_list.append(data)
else:
mod.append(i)
data['mod'] = mod
print data_list
Run Code Online (Sandbox Code Playgroud)
获得输出
[{'id': '1', 'mod': ['Tom', 'Jerry', 'Sinchan', 'Shero']}, {'id': '2', 'mod': ['Tom', 'Jerry', 'Sinchan', 'Shero']}]
Run Code Online (Sandbox Code Playgroud)
我试图根据数字等得到mod值,我尝试但坚持逻辑,请帮我解决.提前致谢.