我在一个吊舱内有两个容器。一个是我的应用程序容器,第二个是 CloudSQL 代理容器。基本上我的应用程序容器依赖于这个 CloudSQL 容器。
问题是,当 pod 终止时,CloudSQL 代理容器首先终止,并且仅在几秒钟后我的应用程序容器才会终止。
因此,在我的容器终止之前,它不断向 CloudSQL 容器发送请求,从而导致错误:
could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432
Run Code Online (Sandbox Code Playgroud)
这就是为什么,我认为指定终止顺序是一个好主意,以便我的应用程序容器首先终止,然后才是 cloudsql 一个。
我在文档中找不到任何可以做到这一点的东西。但也许有一些方法。
我有这个删除方法:
private void btnDeleteOrderLine_Click(object sender, EventArgs e)
{
OrderLine orderLine = (OrderLine)dgvOrderLine.SelectedRows[0].DataBoundItem;
db.OrderLines.Remove(orderLine);
db.SaveChanges();
refreshGrid();
}
Run Code Online (Sandbox Code Playgroud)
当我单击该删除按钮时,我收到此错误:
无法删除该对象,因为在该对象中找不到该对象
ObjectStateManager.
我发现这是因为有两个Context类的实例.所以,我试过这个:
private void btnDeleteOrderLine_Click(object sender, EventArgs e)
{
OrderLine orderLine = (OrderLine)dgvOrderLine.SelectedRows[0].DataBoundItem;
db.OrderLines.Attach(orderLine); // added this part
db.OrderLines.Remove(orderLine);
db.SaveChanges();
refreshGrid();
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
多个实例不能引用实体对象
IEntityChangeTracker.
如何修复此问题并从Context DbSet中删除对象?
我想创建一个表(postgres),用于存储有关哪些用户查看了哪些项目的数据。经过身份验证的用户没问题,但是我如何区分另一个匿名用户呢?出于分析目的,这是必需的。
也许将其IP地址存储为唯一ID?我怎样才能做到这一点?
我正在我的项目中将 Django 从 1.7 升级到 1.10。
所有静态文件都正确加载。但是,带有版本(或任何其他参数)的版本不是。原因是 Django%出于某种原因将问号转换为 。
例子:
<script src="{% static 'dashboard/js/dashboard.js?v=1.11.0' %}"></script>
Run Code Online (Sandbox Code Playgroud)
转换为
/static/dashboard/js/dashboard.js%3Fv%3D1.11.0
Run Code Online (Sandbox Code Playgroud)
静态文件配置:
STATIC_URL = '/static/'
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
Run Code Online (Sandbox Code Playgroud)
可能是什么原因?
当我创建函数任务时,我可以执行以下操作来指定队列:
@app.task(name='my_task', queue='my_queue')
def some_task():
return "hey"
Run Code Online (Sandbox Code Playgroud)
然后,我可以这样调用这个任务:some_task.delay()它会将任务发送到my_queue.
但是,如果我有一个从该类继承的类celery.Task,则每次调用此任务时都必须指定队列:
class MyTask(Task):
def run(self):
return "Hey"
MyTask.apply_async(queue="my_queue")
Run Code Online (Sandbox Code Playgroud)
有没有办法在类定义中指定这一点?像这样的东西:
class MyTask(Task):
queue = 'my_queue'
def run(self):
return "Hey"
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到执行此操作的方法。是否可以?
我有一个SPA(单页面应用程序),它向服务器发送大量的http请求,服务器检查发送请求的用户是否经过身份验证.
如果用户未经过身份验证,我会将其重定向到这样的登录页面:
$scope.getGroups = function () {
$http({
method: "get",
url: "/enterprises/groups"
}).success(function (response) {
GroupService.updateGroups(response.groups);
}).error(function (errResponse, status) {
if(status == 403){
$location.path("login")
}
});
};
Run Code Online (Sandbox Code Playgroud)
问题是我有很多http请求,我不想每次都处理"禁止"异常.
有没有办法编写这种代码,比方说,配置并在任何地方应用它?
这就是我的意思Procfile:
web: gunicorn --pythonpath meraki meraki.wsgi
Run Code Online (Sandbox Code Playgroud)
当我这样做时foreman start,我收到此错误:
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Run Code Online (Sandbox Code Playgroud)
据我所知,在追溯中,原因是:
ImportError: No module named wsgi
Run Code Online (Sandbox Code Playgroud)
我import wsgi在shell中做了导入成功,没有错误.
为什么我不能开始foreman?
项目结构:
meraki
meraki
//other apps
meraki
settings
__init__.py
celery.py
views.py
wsgi.py
manage.py
Procfile
requirements
requirements.txt
Run Code Online (Sandbox Code Playgroud) 我希望在图表 api 中找到类似的东西:
https://graph.facebook.com/pages
Run Code Online (Sandbox Code Playgroud)
找不到类似的东西。
是否可以获取用户拥有/正在管理的页面列表?
我正在尝试将zip文件发送到前端,以便可以在浏览器中下载它。
Zip文件中有一个文件夹,而这些文件夹中有文件:
file.zip
- first folder
- file1.pdf
- file2.pdf
- second folder
- file3.pdf
Run Code Online (Sandbox Code Playgroud)
我认为我需要先将文件转换为字节以将其作为响应发送,所以我尝试这样做:
zip_file = ZipFile(zip_file_path)
zip_byte_array = bytearray()
for filename in zip_file.namelist():
byte_content = zip_file.read(filename)
zip_byte_array.append(byte_content)
return Response(zip_byte_array)
Run Code Online (Sandbox Code Playgroud)
追加到字节数组时,它会出现以下错误:
an integer is required
Run Code Online (Sandbox Code Playgroud)
该文件夹的存档方式如下:
zip_file_path = shutil.make_archive(dir_path, 'zip', dir_path)
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
这是我注册用户并重定向到主页面的方法:
onSubmit(){
this.userService.createUser(this.user).subscribe(function (response) {
alert('Successfully registered');
localStorage.setItem('token', response['token']);
this.router.navigate(['Home']);
}, function (err) {
console.log(err);
}
);
}
Run Code Online (Sandbox Code Playgroud)
在它上面,我有这个构造函数:
constructor(private router: Router, private userService: UserService){}
Run Code Online (Sandbox Code Playgroud)
我添加ROUTER_PROVIDERS到主要组件:
providers: [
ROUTER_PROVIDERS,
HTTP_PROVIDERS
]
Run Code Online (Sandbox Code Playgroud)
当我尝试注册用户时,我收到此错误:
TypeError: Cannot read property 'navigate' of undefined
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在使用Django Rest Framework(版本3.6.2)创建REST API。我定义了继承自GenericViewSet并具有重写retrieve方法的视图集,以实现自定义行为。
class FooViewSet(viewsets.GenericViewSet):
serializer_class = FooSerializer
def retrieve(self, request, *args, **kwargs):
...
serializer = self.get_serializer(data)
return Response(serializer.data)
Run Code Online (Sandbox Code Playgroud)
我想在从浏览器访问此端点时拥有BrowsableAPI,并json在从代码访问该端点时接收响应。我已使用以下设置配置了DRF:
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
),
'TEST_REQUEST_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
),
'TEST_REQUEST_DEFAULT_FORMAT':'json'
}
Run Code Online (Sandbox Code Playgroud)
一切正常,我可以从浏览器访问可浏览的API,使用Postman工具发出请求时,我会得到json响应。不幸的是,在测试期间我无法获得相同的结果。
class GetFooDetailViewTest(APITestCase):
def test_get_should_return_json(self):
response = self.client.get(self.VIEW_URL)
self.assertEqual(response.content_type, "application/json")
Run Code Online (Sandbox Code Playgroud)
我希望响应将content_type设置为application/json(这是我可以在浏览器和Postman的响应中看到的标头)。但是此测试失败- response.content_type设置为None。在调试该测试时,我发现response._headers字典看起来像这样
{
'vary': ('Vary', 'Cookie'),
'x-frame-options': ('X-Frame-Options', 'SAMEORIGIN'),
'content-type': ('Content-Type', 'application/json'),
'allow': ('Allow', 'GET, PUT, DELETE, OPTIONS')
}
Run Code Online (Sandbox Code Playgroud)
因此,似乎设置了正确的标头,但没有将其填充到content_type属性中。我想念什么吗?
python django json django-rest-framework django-rest-viewsets