小编San*_*idi的帖子

javascript如何从对象中省略参数

我有一个对象,如下所示:

   test: {a:"value1",b:"value2",...},
Run Code Online (Sandbox Code Playgroud)

我想省略某些参数,而将其余参数放入一个新数组中

eg: get {a:"value1",... } i want to omit b:"value1"
Run Code Online (Sandbox Code Playgroud)

如何使用一个或多个衬里使用javascript执行此操作。

javascript

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

postgresql:在命令行中使用 psql 运行 SQL 命令

我有以下三行要使用 psql 在命令行中运行,我该怎么做。

CREATE DATABASE myproject;
CREATE USER myprojectuser WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
Run Code Online (Sandbox Code Playgroud)

我只想按原样传递 sql 字符串。

postgresql

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

python json.dumps:无法忽略不可序列化的对象

在Python中,当我想在调试期间漂亮地打印一个对象时,我使用

print(json.dumps(obj.__dict__), indent=4, sort_keys=True)
Run Code Online (Sandbox Code Playgroud)

因为仅仅使用print(obj)可读性不是很好

然后,如果某些项目不可序列化,则会显示

Object of type SOMETHING is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

所以我的目标是在调试时检查一个对象,而不是让一个完美的序列化对象传递它,然后再转换回来。

我通过添加尝试了以下操作default=str以避免错误,并且在很多情况下都有效

print(json.dumps(obj.__dict__), indent=4, sort_keys=True, default=str)
Run Code Online (Sandbox Code Playgroud)

但在某些情况下仍然显示

Object of type SOMETHING is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

那么如何解决这个问题呢。

我正在尝试的对象来自 Django 项目。我正在尝试使用的帮助来漂亮地打印json.dumps

from django.db import connections
import json
for c in connections.all():
    c_dict = {k: getattr(c, k) for k in dir(c)} # this gives all the properties listed using dir(c)
    print(json.dumps(c_dict), indent=4, sort_keys=True, default=str)
Run Code Online (Sandbox Code Playgroud)

回答:

@milanbalanz 在评论中回答了这个问题。typo error它是括号中的一个。因此default=str,它的缩进错误是有效的

print(json.dumps(c_dict), indent=4, …
Run Code Online (Sandbox Code Playgroud)

python json

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

访问 os.scandir 中的第一个元素

os.scandir用于获取文件夹中的文件列表:

img_list2 = os.scandir('/home/shared/test')
Run Code Online (Sandbox Code Playgroud)

我想获得第一个元素。

我在尝试 img_list2.next()

>>> img_list2.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'posix.ScandirIterator' object has no attribute 'next'
Run Code Online (Sandbox Code Playgroud)

所以我试过:

>>> filt = list(img_list2)
>>> type(filt)
<class 'list'>
>>> globals()['filt']
[<DirEntry 'panaroma00010.jpg'>, <DirEntry 'panaroma00014.jpg'>, <DirEntry 'panaroma00004.jpg'>, <DirEntry 'panaroma00013.jpg'>, <DirEntry 'panaroma00007.jpg'>, <DirEntry 'panaroma00011.jpg'>, <DirEntry 'panaroma00012.jpg'>, <DirEntry 'panaroma00006.jpg'>, <DirEntry 'panaroma00009.jpg'>, <DirEntry 'panaroma00001.jpg'>, <DirEntry 'panaroma00003.jpg'>, <DirEntry 'panaroma00005.jpg'>, <DirEntry 'panaroma00002.jpg'>, <DirEntry 'panaroma00008.jpg'>]
>>> filt[1]
<DirEntry 'panaroma00014.jpg'>
>>> 
Run Code Online (Sandbox Code Playgroud)

所以就像在列表中我们可以获得第一个元素值,我们可以从os.scandir?

python python-3.x

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

强制刷新外部库不起作用

我在 virtualenv 中有 python 项目。我是用pycharm打开的。

后来我从 virtualenv 内部使用 pip 安装了一些软件包,但不是从 pycharm 而是直接从命令行安装。

但是在 pycharm > settings > python interpreter 中:它没有显示我刚刚从 pycharm 外部安装的包。

我尝试选择另一个解释器并返回,仍然没有显示从 pycharm 外部安装的包。

我已经重新启动 pycharm 仍然没有运气。

知道如何在 pycharm 中刷新 python 包

pycharm

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

docker compose:postgresql 创建数据库,用户通行证并授予权限

我有以下 docker-compose 文件:

version: '3'
services:
  web:
    build:
      context: ./django_httpd_mod_wsgi
    ports:
     - "8000:80"
  db:
    build:
      context: ./postgresql
    volumes:
       - db-data:/var/lib/postgres/data
volumes:
  db-data:
Run Code Online (Sandbox Code Playgroud)

我正在使用 archlinux 构建 psotgresql 映像:

以下是我的 postgresql Dockerfile:

FROM archlinux/base

RUN yes | pacman -S postgresql

RUN mkdir /run/postgresql/
RUN chown -R postgres:postgres /run/postgresql/

USER postgres

RUN initdb -D /var/lib/postgres/data

RUN psql -c 'CREATE DATABASE btgapp;' 
RUN psql -c "CREATE USER simha WITH PASSWORD 'krishna';" 
RUN psql -c 'GRANT ALL PRIVILEGES ON DATABASE btgapp TO simha;'

CMD ["/usr/bin/postgres","-D","/var/lib/postgres/data"] …
Run Code Online (Sandbox Code Playgroud)

postgresql archlinux docker docker-compose

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

努力理解 Django 中的 WSGI 接口

我最近试图了解什么是 WSGI 应用程序:

WSGI 应用程序只是一个可调用对象,它传递一个环境 - 一个包含请求数据的字典,以及一个被调用以开始发送响应的 start_response 函数。

为了将数据发送到服务器,您所要做的就是调用 start_response 并返回一个可迭代对象。

所以,这是一个简单的应用程序:

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return ['Hello World!']
Run Code Online (Sandbox Code Playgroud)

Django 的 wsgi.py 是

"""
WSGI config for basic_django project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
"""
import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'basic_django.settings')

application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)

但是当我看到 wsgi.py 时,application = get_wsgi_application()可调用对象没有通过environstart_response函数传递

那么如何理解这一点

django wsgi

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

docker 编写如何挂载入口点然后使用它

我在 docker 中有一个服务,组成如下。

  nginx:
    image: nginx:1.18.0-alpine
    ports:
      - 8000:80
    volumes:
      - ./nginx/localhost/conf.d:/etc/nginx/conf.d
      - ./entrypoint.sh:/entrypoint.sh
    entrypoint: ./entrypoint.sh
    depends_on:
      - webapp
    networks:
      - nginx_network
Run Code Online (Sandbox Code Playgroud)

我收到错误

Cannot start service nginx: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/entrypoint.sh": permission denied: unknown

ERROR: for nginx  Cannot start service nginx: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/entrypoint.sh": permission denied: unknown            
ERROR: Encountered errors while bringing up the project.   
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点

docker-compose

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

Django模型:Meta:如何使默认排序不区分大小写

我有一个Django模型如下所示:我知道我们可以在Meta类中设置默认顺序.

class Ingredient(models.Model):
    name = models.CharField(max_length=200,unique=True,null=False)
    slug = models.SlugField(unique=True)

    class Meta:
        ordering = ["name"]
Run Code Online (Sandbox Code Playgroud)

由于订购设置在这里命名.我发现的是,它是通过区分大小写的.那么如何使它不区分大小写

django django-models

0
推荐指数
2
解决办法
1924
查看次数