小编Rég*_* B.的帖子

如何过滤中文(仅限中文)

我想将一些包含标点符号和全角符号的文本转换为纯中文文本.

maybe_re = re.compile("xxxxxxxxxxxxxxxxx") #TODO
print "".join(maybe_re.findall("??,?????????.??????"))

# I want out
?????????????
Run Code Online (Sandbox Code Playgroud)

python

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

带有 docker 端口映射的 iptables

众所周知,当 Docker 在主机上运行时,iptables 规则很难设置,我想我在这篇精彩的博客文章中找到了一个明确的解决方案:https : //unrouted.io/2017/08/15/docker-firewall/

这篇博文中描述的配置已经为我服务了很长时间,但我现在面临一个我以前从未遇到过的问题。

我正在运行一个 docker 容器,它在主机的端口 465 上公开服务。端口 465 映射到容器中的端口 25。以下是模拟此类服务的方法:

$ docker run --rm -it -p 465:25 python:3.6 python3 -m http.server 25
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法从外部访问服务器上的端口 465:

$ curl mydomain.com:465
curl: (7) Failed to connect to mydomain.com port 465: No route to host
Run Code Online (Sandbox Code Playgroud)

然而,有趣的部分来了,如果主机上端口映射到容器中的相同端口,我确实设法访问该服务。换句话说,当我在主机上运行时:

$ docker run --rm -it -p 465:465 python:3.6 python3 -m http.server 465
Run Code Online (Sandbox Code Playgroud)

然后我可以从外部访问该服务:

$ curl mydomain.com:465
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org...
Run Code Online (Sandbox Code Playgroud)

这整个问题是由于我的 iptables …

iptables docker

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

在Django FileResponse上迭代streaming_content属性

我正在使用django rest框架开发api,并且正在编写一些单元测试来检查关键操作。我在尝试执行获取请求后读取文件的内容

downloaded_file = self.client.get(textfile)
Run Code Online (Sandbox Code Playgroud)

问题是返回的对象类型为:django.http.response.FileResponse,它继承自StreamingHttpResponse

我正在尝试遍历streaming_content属性,该属性应该是迭代器,但是我无法进行迭代,没有方法next()

我检查了这个对象,得到的是地图对象。关于如何从此请求中获取内容的任何想法?

编辑:

问题解决了

返回的对象是一个映射,一个映射具有一个函数和一个可迭代的对象:

https://docs.python.org/3.4/library/functions.html#map

我要做的是将地图转换为列表,访问列表的第一个元素,然后从字节转换为字符串。不是很优雅,但可以。

list(response.streaming_content)[0].decode("utf-8")
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

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

如何将参数传递给 Express post HTTP 方法?

我正在构建一个简单的 REST API(使用PouchDBVue.js)。现在,我可以创建projects几个字段:

服务器.js:

var express = require('express')
var PouchDB = require('pouchdb')
var app = express()
var db = new PouchDB('vuedb')

app.post('/projects/new', function(req, res) {
  var data = {
    'type': 'project',
    'title': '',
    'content': '',
    'createdAt': new Date().toJSON()
  }
  db.post(data).then(function (result) {
    // handle result
  })
})
Run Code Online (Sandbox Code Playgroud)

客户端.js:

// HTML

<input type="text" class="form-control" v-model="title" placeholder="Enter title">
<input type="text" class="form-control" v-model="content" placeholder="Enter content">
<button class="btn btn-default" v-on:click="submit">Submit</button>

// JS

submit () {
  this.$http.post('http://localhost:8080/projects/new').then(response => { …
Run Code Online (Sandbox Code Playgroud)

javascript rest express pouchdb vue.js

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

包括没有换行的Django模板

我的main.html模板包含以下代码:

<p>{% include "pouac.html" %}{% include "pouac.html" %}</p>
Run Code Online (Sandbox Code Playgroud)

pouac.html文件包含一行:

<span>pouac</span>
Run Code Online (Sandbox Code Playgroud)

main.html模板生成以下行html代码:

<span>pouac</span>
<span>pouac</span>
Run Code Online (Sandbox Code Playgroud)

令人讨厌的副作用是这个代码在两个"pouac"单词之间产生一些空格(例如:"word1"和"word2"由http://jsfiddle.net/regisb/CBtaz/中的空格分隔)

为了摆脱这个空白,我想渲染一个Django模板而不添加一个连续的换行符.我怎样才能做到这一点?

html css django django-templates

4
推荐指数
2
解决办法
2595
查看次数

运行 docker-compose up 时,我的 mongodb 本地卷权限被拒绝

这是我的 docker-compose.yml

version: "3.5"
services:
  api:
    container_name: upvotocracy-api
    restart: always
    build: .
    env_file: .env
    ports:
      - "127.0.0.1:8537:8537"
      - "127.0.0.1:9228:9229"
    links:
      - mongo
    volumes:
      - ./index.js:/usr/src/app/index.js
      - ./.env:/usr/src/app/.env
    networks:
      - upvotocracy-network
  mongo:
    container_name: upvotocracy-mongo
    restart: always
    image: mongo:latest
    env_file: .env
    volumes:
      - ./mongo_data:/data/db
    ports:
      - "127.0.0.1:28016:27017"
    networks:
      - upvotocracy-network
  redis:
    image: redis
    restart: always
    container_name: upvotocracy-cache
    ports:
      - "127.0.0.1:6381:6379"
    networks:
      - upvotocracy-network
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: upvotocracy-es01
    restart: always
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - cluster.initial_master_nodes=es01
      - bootstrap.memory_lock=true
      - action.auto_create_index=+*
      - …
Run Code Online (Sandbox Code Playgroud)

permissions mongodb docker-compose docker-volume

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

Chrome 的 CSS 解析器是否有最大行长?

我观察到一些与长 CSS 规则相关的非常奇怪的行为。

我的 HTML 如下所示:

<section id="mysection" class="modal">...</section>
Run Code Online (Sandbox Code Playgroud)

我的(sass 编译的)CSS 包含以下规则:

.modal {
    display: none;
}

somelement, someotherelement, ... #mysection subelement,... #mysection someothersubelement, ... {
    display: block;
}
Run Code Online (Sandbox Code Playgroud)

第二个 CSS 规则是 84000+ 个字符长。请注意,它不应影响#mysection元素,而只影响其子元素。

想要的结果是隐藏#mysection元素。这在 Firefox 37.0.2 中正确实现。在 Chrome 42.0.2311.135 中,元素是可见的——这是不正确的。开发人员工具表明该#mysection元素受这两个规则的影响,但第二个规则优先。但是,我似乎无法找到影响部分显示属性的 CSS 行的特定部分。

每当我更改其 ID 时,该部分就会隐藏在 Chrome 中。

我还可以通过将 CSS 行手动拆分为具有相同display: block指令的约 40k 个字符的两个部分,从而在 Chrome 中获得正确的行为。一个假设是 Chrome CSS 解析器会按如下方式截断长行:

... #mysection subelement, ...
              ^
              |
          truncate here
Run Code Online (Sandbox Code Playgroud)

因此,该#mysection元素将受到display: block …

html css firefox google-chrome

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

解析具有[值](类型)格式的句子

我想从给定的句子中解析和提取键,其值遵循以下格式:
I want to get [samsung](brand) within [1 week](duration) to be happy.

我想将其转换为如下所示的拆分列表:
['I want to get ', 'samsung:brand', ' within ', '1 week:duration', ' to be happy.']

我试图使用[或拆分它)

re.split('\[|\]|\(|\)',s)
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

['I want to get ',
 'samsung',
 '',
 'brand',
 ' within ',
 '1 week',
 '',
 'duration',
 ' to be happy.']
Run Code Online (Sandbox Code Playgroud)

re.split('\[||\]|\(|\)',s)
Run Code Online (Sandbox Code Playgroud)

给下面的输出:

['I want to get ', 
'samsung](brand) within ', 
'1 week](duration) to be happy.']
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

注意:这类似于stackoverflow内联链接,如果我们键入:go to [this link](http://google.com)它将解析为链接。

python regex

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

使用读取器架构将 Avro 文件转换为 JSON

我想在命令行上使用与编写器架构不同的读取器架构反序列化 Avro 数据。我可以在序列化时指定编写器模式,但不能在反序列化期间指定。

record.json (数据文件):

{"test1": 1, "test2": 2}
Run Code Online (Sandbox Code Playgroud)

writer.avsc (作家模式):

{
    "type": "record",
    "name": "pouac",
    "fields": [
        {
            "name": "test1",
            "type": "int"
        },
        {
            "name": "test2",
            "type": "int"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

reader.avsc (读者架构):

{
    "type": "record",
    "name": "pouac",
    "fields": [{
        "name": "test2",
         "type": "int",
         "aliases": ["test1"]
    }]
}
Run Code Online (Sandbox Code Playgroud)

序列化数据:

$ java -jar avro-tools-1.8.2.jar fromjson --schema-file writer.avsc record.json > record.avro
Run Code Online (Sandbox Code Playgroud)

为了反序列化数据,我尝试了以下操作:

$ java -jar avro-tools-1.8.2.jar tojson --schema-file reader.avsc record.avro
Exception in thread "main" joptsimple.UnrecognizedOptionException: 'schema-file' is …
Run Code Online (Sandbox Code Playgroud)

java json avro

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

如何用c中的值打印整数的名称

我们如何在输出中打印最年轻的名字?我想计算最年轻的人.

那是我的代码:

    #include <stdio.h>
    #include <conio.h>
    int main() {
    int john;
    int ahmad;
    int saleem;

    printf("Enter the age of john,ahamd, saleem simaltanoeusly\n");
    scanf_s("%d\n%d\n%d", &john, &ahmad, &saleem);


    int youngest = john;
    if (john > ahmad) 
        youngest = ahmad;
    if (ahmad > saleem)
        youngest = saleem;

    printf("youngest of you is %d", youngest);

    _getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c int

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