小编Jah*_*nov的帖子

Kubernetes 中单个 pod 中容器终止的控制顺序

我在一个吊舱内有两个容器。一个是我的应用程序容器,第二个是 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 一个。

我在文档中找不到任何可以做到这一点的东西。但也许有一些方法。

google-cloud-sql kubernetes cloud-sql-proxy

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

如何在c#中使用DbContext删除对象?

我有这个删除方法:

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中删除对象?

.net c# linq entity-framework winforms

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

如何为Django中的每个匿名用户提供一些唯一的ID

我想创建一个表(postgres),用于存储有关哪些用户查看了哪些项目的数据。经过身份验证的用户没问题,但是我如何区分另一个匿名用户呢?出于分析目的,这是必需的。

也许将其IP地址存储为唯一ID?我怎样才能做到这一点?

python authentication django

4
推荐指数
1
解决办法
2473
查看次数

Django 1.10 将问号转换为静态文件 url 中的百分号

我正在我的项目中将 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)

可能是什么原因?

python django

4
推荐指数
1
解决办法
261
查看次数

为 Celery 中的任务类指定队列

当我创建函数任务时,我可以执行以下操作来指定队列:

@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)

我在文档中找不到执行此操作的方法。是否可以?

python celery django-celery

4
推荐指数
1
解决办法
1351
查看次数

如果状态代码在angularjs中为403,则注销

我有一个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请求,我不想每次都处理"禁止"异常.

有没有办法编写这种代码,比方说,配置并在任何地方应用它?

javascript angularjs

3
推荐指数
1
解决办法
4391
查看次数

没有名为wsgi的模块

这就是我的意思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)

python django heroku gunicorn foreman

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

使用 Graph API 获取用户在 Facebook 中拥有的页面列表

我希望在图表 api 中找到类似的东西:

https://graph.facebook.com/pages
Run Code Online (Sandbox Code Playgroud)

找不到类似的东西。

是否可以获取用户拥有/正在管理的页面列表?

facebook facebook-graph-api

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

如何将zip文件发送到前端以在DRF中下载

我正在尝试将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)

我怎样才能解决这个问题?

python django zip download django-rest-framework

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

this.router在AngularJS 2中未定义

这是我注册用户并重定向到主页面的方法:

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)

我究竟做错了什么?

javascript angularjs angular2-routing angular

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

测试期间,“ DRF响应”内容类型设置为“无”

我正在使用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

0
推荐指数
1
解决办法
1727
查看次数