小编mat*_*att的帖子

通过主管和docker-compose从django输出彩色日志

我的目标是在docker-compose日志中获取我的Django webservice的彩色日志.

  1. 我使用docker-compose来管理基于Django框架的Web服务列表.

  2. 每个容器运行一个my_init bash脚本,该脚本依次运行runit(这在我的案例中是历史性的)脚本,该脚本运行一个supervisord进程:

    my_init---runsvdir-+-runsv---run---supervisord-+-gunicorn---gunicorn
                       |                           |-nginx---8*[nginx]
                       |                           |-python---9*[python]
                       |                           |-python---python  (Django)
                       |                           `-redis-server---2*[{redis-server}]
                       `-runsv
    
    Run Code Online (Sandbox Code Playgroud)
  3. Django服务器在WSGI中与Gunicorn连接,并通过Nginx提供服务

  4. supervisord conf如下:

    [supervisord]
    http_port=/var/tmp/supervisor.sock ; (default is to run a UNIX domain socket server)
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    stderr_logfile=/dev/stderr
    stderr_logfile_maxbytes=0
    
    [program:gunicorn_core_service]
    #environment=myapp_VENV=/opt/myapp/venv/
    environment=PYTHONPATH=/opt/myapp/myappServer/myappServer
    command = /opt/myapp/venv/bin/gunicorn wsgi -b 0.0.0.0:8000 --timeout 90 --access-logfile /dev/stdout --error-logfile /dev/stderr
    directory = /opt/myapp/myappServer
    user = root
    autostart=true
    autorestart=true
    redirect_stderr=true
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    stderr_logfile=/dev/stderr
    stderr_logfile_maxbytes=0
    
    [program:django-celery]
    command=/opt/myapp/venv/bin/python ./manage.py …
    Run Code Online (Sandbox Code Playgroud)

django logging colors docker-compose

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

JSX与组件类实例化

有人可以向我解释以下两个陈述之间的区别吗?

let test1 = new CustomComponent();
Run Code Online (Sandbox Code Playgroud)

let test2 = <CustomComponent />
Run Code Online (Sandbox Code Playgroud)

调试器是Chrome给我的:

for test1
CustomComponent {props: undefined, context: undefined, refs: Object, updater: Object, state: Object…}

for test2
Object {$$typeof: Symbol(react.element), key: null, ref: null, props: Object, type: function…}
Run Code Online (Sandbox Code Playgroud)

如何从test1类型的变量中获取test2类型的变量?

javascript reactjs

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

strace 'open' 在可执行文件库中调用

我有一个没有源代码的程序。

当我运行它时,日志中出现“无法打开文件...”错误。

我以这种方式调用了strace来跟踪内核上的打开调用:

strace -e trace=open,close,read,write,connect,accept your-command-here
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有我期望的打开调用(这将在日志显示“无法打开文件...”之前发生)

可执行文件确实将打开调用委托给了 tierce 库。似乎strace只跟踪内核上可执行文件的调用,而不是库依赖项的调用。

我尝试使用ltrace来跟踪后续库中发生的情况,但它显示的信息与strace 不同,仅显示函数调用(不是人类可读的)。

有没有办法同时在可执行文件和库上运行strace

unix linux trace execution strace

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

何时以及如何使用Django REST Framework验证数据

我有一个模型,它使用Django REST Framework作为资源公开.我需要在相关端点上执行POST请求时手动创建对象,这就是我使用a generics.ListCreateAPIView并覆盖该create()方法的原因.

但是,我需要检查POST请求的有效负载中给出的参数是否格式正确/现有/等...

我应该在哪里执行此验证,它与串行器有什么关系?

我试图在相关的Serializer中编写一个validate()方法,但它永远不会在POST请求中调用.

class ProductOrderList(generics.ListCreateAPIView):
     model = ProductOrder
     serializer_class = ProductOrderSerializer
     queryset = ProductOrder.objects.all()

     def create(self, request, *args, **kwargs):
          data = request.data
          # Some code here to prepare the manual creation of a 'ProductOrder' from the data
          # I would like the validation happens here (or even before)
          po = ProductOrder.objects.create(...)


class ProductOrderSerializer(serializers.ModelSerializer):

    class Meta:
        model = ProductOrder

    def validate(self, data):   # Never called
        # Is it the good place to write the …
Run Code Online (Sandbox Code Playgroud)

django validation django-rest-framework

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

在C#中继承List,在FindAll()之后显式转换

我有一个子类通用List的类.我这样做是为了实现一个我需要在这种列表上定期调用的toJSONString().所以我的班级是这样的:

public class Foos : List<Foo>
{
    public string toJSONString()
    {
        //Do something here
    }
}
Run Code Online (Sandbox Code Playgroud)

在另一个类我有一个方法这样做:

public class Bar
{
    private Foos m_Foos = new m_Foos();

    public Foos filterWith(Query p_query)
    {
        Foos newList = m_Foos.FindAll(
            // Make a test through a delegate
        });

        return (newList);
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

错误CS0266:无法隐式转换类型System.Collections.Generic.List<Foo>' toFoos'.存在显式转换(您是否缺少演员?)(CS0266)(Assembly-CSharp)

问题是m_Foos.FindAll(...)返回"List"而不是"Foos".显式转换不起作用,因为我有一个运行时错误.

我已阅读过这篇文章,但它似乎没有给出我的问题的适当解决方案: C# - 为什么我不能将List <MyObject>转换为继承自List <MyObject>的类?

c# inheritance casting list

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

SQLAlchemy:ImportError:无法导入名称列

我只是通过pip来获得sqlalchemy

pip install sqlalchemy
Run Code Online (Sandbox Code Playgroud)

当我在python控制台中从sqlalchemy导入一个简单的类时

from sqlalchemy import Column
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

from sqlalchemy import Column
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sqlalchemy.py", line 5, in <module>
    from sqlalchemy import Column, Integer, Unicode, UnicodeText, String
ImportError: cannot import name Column
Run Code Online (Sandbox Code Playgroud)

我在OSX和Ubuntu环境中有相同的错误.在SQLAlchemy网站支持部分,没有关于此问题的参考.它与我的Python环境有关吗?

python sqlalchemy importerror

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