小编bix*_*e57的帖子

Docker 环境变量和 Django 数据库设置

我正在运行一个内部有 Django 的 Docker 容器。

这是我的 dev.yml 文件:

version: '2'

volumes:
  postgres_data_dev: {}
  postgres_backup_dev: {}

services:
  postgres:
    build: ./compose/postgres
    volumes:
      - postgres_data_dev:/var/lib/postgresql/data
      - postgres_backup_dev:/backups
    environment:
      - POSTGRES_USER=sorbetcitron

  django:
    build:
      context: .
      dockerfile: ./compose/django/Dockerfile-dev
    command: python ./manage.py runserver_plus 0.0.0.0:8000
    depends_on:
      - postgres
    environment:
      - POSTGRES_USER=sorbetcitron
      - USE_DOCKER=yes
      - DJANGO_DEBUG=True
      - DATABASE_URL=postgres://django:django@localhost:5432/sorbetcitron
    volumes:
      - .:/app
    ports:
      - "8000:8000"
    links:
      - postgres



  pycharm:
    build:
      context: .
      dockerfile: ./compose/django/Dockerfile-dev
    depends_on:
      - postgres
    environment:
      - POSTGRES_USER=sorbetcitron
    volumes:
      - .:/app
    links:
      - postgres
Run Code Online (Sandbox Code Playgroud)

然后我用以下命令启动我的容器:

docker-compose -f …
Run Code Online (Sandbox Code Playgroud)

django environment-variables docker

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

如何在Docker中回显环境变量

我的docker-compose.yml是:

version: '2'

volumes:
  postgres_data: {}
  postgres_backup: {}

services:
  postgres:
    build: ./compose/postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - postgres_backup:/backups
    env_file: .env

  django:
    build:
      context: .
      dockerfile: ./compose/django/Dockerfile
    user: django
    depends_on:
      - postgres
      - redis
    command: /gunicorn.sh
    env_file: .env

  nginx:
    build: ./compose/nginx
    depends_on:
      - django

    ports:
      - "0.0.0.0:80:80"


  redis:
    image: redis:latest
    restart: always
Run Code Online (Sandbox Code Playgroud)

在我的.env文件中,我有:

# PostgreSQL
POSTGRES_PASSWORD=mysecretpass
POSTGRES_USER=postgresuser
Run Code Online (Sandbox Code Playgroud)

如何测试是否有效设置了环境变量?

我试过在远程计算机上运行tu:

docker run sorbetcitron_django echo $POSTGRES_USER
Run Code Online (Sandbox Code Playgroud)

其中sorbetcitron_django是我的django映像,但不输出任何内容。

docker docker-compose

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

如何编写自定义序列化程序?

我想在使用DRF发送回JSON响应之前执行一些数据操作。

情况

我的模型是:

class ThirdParty(models.Model):
    label = models.CharField(verbose_name=_("Third party label"), null=False, blank=False, default=DEFAUT_LABEL, max_length=255)

class CashFlow(TimeStampedModel):
    date = models.DateField(verbose_name=_("Due date"), null=True, blank=True)
    forecasted_value = models.DecimalField(verbose_name=_("Forecasted value"), null=True, blank=True, max_digits=11, decimal_places=2)
    third_party = models.ForeignKey(ThirdParty, null=False, blank=False, related_name='cashflows')
Run Code Online (Sandbox Code Playgroud)

目前,我有两个序列化器:

class CashFlowSerializer(serializers.ModelSerializer):
    third_party = serializers.PrimaryKeyRelatedField(many=False, read_only=True, allow_null=True)
    class Meta:
        model = CashFlow
        fields = ('id', 'date', 'forecasted_value', 'edited_value', 'third_party')

class ThirdPartyReadSerializer(serializers.ModelSerializer):
    cashflows = CashFlowSerializer(many=True, read_only=True)
    class Meta:
        model = ThirdParty
        fields = ('id', 'label', 'category', 'cashflows',)
Run Code Online (Sandbox Code Playgroud)

而且我的ThirdParty视图正确地返回了一个不错的JSON作为:

{
        "id": 15,
        "label": "Adeo",
        "category": …
Run Code Online (Sandbox Code Playgroud)

django serialization django-rest-framework

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

正文中带有 json 的原始 POST 请求

在 Lua 程序中,使用 modeMCU,我的 HTTP POST 请求出现问题。

我针对httpbin.org/post.

我想发送json数据,所以我的要求是:

POST /post HTTP/1.1
Host: httpbin.org
Connection: close
Accept: */*
User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)
Content-Type: application/json

{...some JSON here}
Run Code Online (Sandbox Code Playgroud)

回应是:

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 07 Sep 2015 10:39:12 GMT
Content-Type: application/json
Content-Length: 332
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept": "*/*", 
    "Content-Type": "application/json", 
    "Host": "httpbin.org", 
    "User-Agent": "Mozilla/4.0 (compatible; esp8266 Lua; Windows NT …
Run Code Online (Sandbox Code Playgroud)

lua json curl http http-post

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