小编Nur*_*bek的帖子

如何在 Vue.js 应用程序中正确下载 Excel 文件?

我正在努力在我的应用程序中下载格式的Excel文件。我的 Vue.js 应用程序向 Node.js 应用程序发出 post 请求,该应用程序从远程 SFTP 服务器下载该 Excel 文件。后端应用程序运行没有任何问题。xlsxVue.js

在 Vue.js 应用程序中,我使用下一个代码:

axios.post(config.backendHost + '/excel', {
  file_name: fileName
}).then((response) => {
  const url = URL.createObjectURL(new Blob([response.data], {
    type: 'application/vnd.ms-excel'
  }))
  const link = document.createElement('a')
  link.href = url
  link.setAttribute('download', fileName)
  document.body.appendChild(link)
  link.click()
});
Run Code Online (Sandbox Code Playgroud)

通过浏览器下载文件后,文件自动打开,我遇到如下错误:

我们发现某些内容有问题.xlsx。您希望我们尽可能多地尝试恢复吗?

javascript excel blob xlsx vue.js

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

如何将文件发送到 Django 中的响应?

我有这样的 php 函数,我尝试在我的 Django 项目中重写它。对于像header()和这样的php方法,python中的类似物应该是什么show_error()?另外如何发送文件以响应?

php:

function waprfile($date=false) {
    if(!isset($date) || $date==false) $date = date("d.m.y");

    $timestmp = date2timestamp($date);

    $filepath = "https://www.example.com/files/".$this->lang_code."/";

    if(file_get_contents($filepath.date("dmy",$timestmp).".xls"))
    {
        header("Location: ".$filepath."wapr".date("dmy",$timestmp).".xls");
    }
    else
    {
        show_error(_langWrite("No file for specified date", "???? ?? ????????? ???? ???????????"));
    }
}
Run Code Online (Sandbox Code Playgroud)

Python:

import urllib.request
import datatime
import time
from django.utils import translation

def isset(variable):
    return variable in locals() or variable in globals()

def waprfile(request, date):
    if(not isset(date) or date==False):
        date = datetime.datetime.now().strftime('%d.%m.%Y')

    timestmp = time.mktime(datatime.datetime.strptime(date, "%d.%m.%Y").timetuple())

    filepath …
Run Code Online (Sandbox Code Playgroud)

php python django python-2.7 django-1.11

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

解析 PostgreSQL TIMESTAMP 类型值的问题

在 PostgreSQL 中,我有一个名为surveys.

CREATE TABLE SURVEYS(
  SURVEY_ID UUID PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
  SURVEY_NAME VARCHAR NOT NULL,
  SURVEY_DESCRIPTION TEXT,
  START_PERIOD TIMESTAMP,
  END_PERIOD TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud)

如您所见,只有SURVEY_IDSURVEY_NAME列是NOT NULL.

在 Go 中,我想根据POST请求在该表中创建新条目。我像这样发送 JSON 对象:

{
    "survey_name": "NAME",
    "survey_description": "DESCRIPTION",
    "start_period": "2019-01-01 00:00:00",
    "end_period": "2019-02-28 23:59:59"
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,它引发了奇怪的错误

parsing time ""2019-01-01 00:00:00"" as ""2006-01-02T15:04:05Z07:00"": cannot parse " 00:00:00"" as "T"
Run Code Online (Sandbox Code Playgroud)

我在哪里出错以及如何解决我的问题?

模型/surveys.go:

import (
    "database/sql"
    "time"
)

type NullTime struct { …
Run Code Online (Sandbox Code Playgroud)

go

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

如何在 docker 中使用 certbot 正确安装 ssl 证书?

我正在尝试部署Node.js/Express应用程序Docker,使用让我们为 HTTPS 加密 SSL 证书。

当我运行docker-compose up命令时,所有 3 个服务都已启动,但我注意到这样的警告:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
No certs found.
Run Code Online (Sandbox Code Playgroud)

当 docker 尝试RUN /scripts/certbot-auto -n certificatescertbot/Dockerfile文件中执行命令时会发生此警告。

里面的/var/log/letsencrypt/letsencrypt.log文件我看到这个:

2019-08-21 10:27:50,354:DEBUG:certbot.main:certbot version: 0.37.1
2019-08-21 10:27:50,355:DEBUG:certbot.main:Arguments: ['-n']
2019-08-21 10:27:50,355:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#manual,PluginEntryPoint#nginx,Plugin$
2019-08-21 10:27:50,372:DEBUG:certbot.log:Root logging level set at 20
2019-08-21 10:27:50,372:INFO:certbot.log:Saving debug log to /var/log/letsencrypt/letsencrypt.log
Run Code Online (Sandbox Code Playgroud)

同样在 nginx 容器的日志中,我注意到这样的警告:

2019/08/21 10:28:37 [emerg] 1#1: cannot load certificate "/etc/letsencrypt/live/tols/fullchain.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/tols/fullchain.pem','r') …
Run Code Online (Sandbox Code Playgroud)

ssl nginx node.js docker certbot

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

单元测试完成后如何删除图像文件?

在单元测试中,我一开始创建了 3 个对象(文章)。测试完成后,我注意到文件夹中有 3 张图像media_root

问题:如何删除测试完成后创建的图像?

PS我尝试使用下一个代码,但它删除了media_root文件夹。

def tearDown(self):
        rmtree(settings.MEDIA_ROOT, ignore_errors=True)
Run Code Online (Sandbox Code Playgroud)

注意:方法test_article_form_valid和中的问题test_article_crud

测试.py:

class ArticleTestCase(TestCase):
    def setUp(self):  
        self.image = open(os.path.join(BASE_DIR, 'static/images/tests/image.jpg'), "r")

    def test_article_form_valid(self):
        data = {
            'head': 'TEXT',
        }
        files_data = {
            'image': SimpleUploadedFile(
                name=self.image.name,
                content=self.image.read(),
                content_type='image/jpeg'
            )
        }
        form = ArticleForm(data=data, files=files_data)
        self.assertTrue(form.is_valid())  <-- ERROR

    def test_article_crud(self):
        response = self.client.get(reverse("article:article_create"))
        self.assertEquals(response.status_code, 200)
        response = self.client.post(
            reverse("article:article_create"),
            data={
                'head': 'TEST',
                'image': self.image
            },
            follow=True,
            format='multipart'
        )
        self.assertEqual(response.status_code, 200)
        self.assertEqual(Article.objects.all().count(), …
Run Code Online (Sandbox Code Playgroud)

python django unit-testing python-2.7 django-1.11

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

我如何知道查询中是否使用了任何索引?PostgreSQL 11?

我有点困惑,需要一些建议。我用PostgreSQL 11数据库。我有这么简单的sql语句:

SELECT DISTINCT "CITY", "AREA", "REGION"
    FROM youtube
WHERE
    "CITY" IS NOT NULL
AND
    "AREA" IS NOT NULL
AND
    "REGION" IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

youtube我在 sql 语句中使用的表有 2500 万条记录。我认为这就是为什么查询需要 15-17 秒才能完成。对于我使用该查询的 Web 项目,它太长了。我正在尝试加快请求。

我为 youtube 表创建了这样的索引:

CREATE INDEX youtube_location_idx ON public.youtube USING btree ("CITY", "AREA", "REGION");
Run Code Online (Sandbox Code Playgroud)

在这一步之后,我再次运行查询,但需要相同的时间才能完成。似乎查询不使用索引。我如何知道查询中是否使用了任何索引?

解释分析返回: 在此处输入图片说明

sql postgresql sql-execution-plan postgresql-performance

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

如何在 docker 中安装 kerberos 客户端?

我正在尝试Docker通过 next创建图像Dockerfile。必须安装Kerberos客户端。

Dockerfile

FROM node:latest

RUN export DEBIAN_FRONTEND=noninteractive

RUN apt-get -qq update
RUN apt-get -qq install krb5-user libpam-krb5
RUN apt-get -qq clean

COPY / ./

EXPOSE 3000

CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)

RUN apt-get -qq install krb5-user libpam-krb5来自 Dockerfile 的下一个命令要求我将值输入到交互式提示中,如下所示:

Default Kerberos version 5 realm: 
Run Code Online (Sandbox Code Playgroud)

关键是即使我写了值并按回车,命令也不会终止。出了什么问题以及如何解决?

kerberos docker dockerfile devops

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

如何在材料设计中使用ViewPager创建工具栏选项卡

任何人都知道如何在API 21/AppCompat工具栏中完成选项卡

我发现的很多材料和文章都很旧.他们使用ActionBar的旧方法现在不起作用.此刻我刚刚创建了工具栏,并且没有关于工具栏标签的想法.那么,任何人都可以提供有关如何使用viewpager创建工具栏选项卡的示例或文章吗?

android android-viewpager android-tabs material-design android-toolbar

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

设计 UI Android (CardViews 之间的元素)

我的问题提供了更多信息。我只是想知道如何进行这样的设计。我发现了名为“天气时间线”的 android 应用程序,并且在 CardViews 之间的该应用程序内部(据我所知),他们使用了我在下图中指出的这个元素。我认为它只是 ImageView 但如何将其设置为此处。知道任何关于这个的想法会很有趣!谢谢关注!

在此处输入图片说明

android android-layout android-cardview

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

如何正确扫描Golang中array_agg函数的结果?

在我的Golang (1.15) 应用程序中,我使用sqlx包来处理PostgreSQL数据库 (PostgreSQL 12.5)。

我的SQL请求有一个array_agg函数,该函数返回字符串数组,如果为空则返回 null。

我正在尝试Scan此 SQL 请求的结果,但它在我的程序中引发了下一个错误:

sql:列索引 3 上扫描错误,名称“organization_ids”:不支持扫描,将 driver.Value 类型字符串存储到类型 *[]string

代码片段

type Channel struct {
    ChannelId           *string   `db:"channel_id" json:"channelId"`
    ChannelName         *string   `db:"channel_name" json:"channelName"`
    OrganizationsIds    *[]string `db:"organizations_ids" json:"organizationsIds"`
}

var channel Channel

row := db.QueryRow(`
    select
        channels.channel_id::text,
        channels.channel_name::text,
        array_agg(distinct channels_organizations_relationship.organization_id)::text[] organizations_ids
    from
        channels
    left join channels_organizations_relationship on
        channels.channel_id = channels_organizations_relationship.channel_id
    where
        channels.channel_id = $1
    group by
        channels.channel_id
    limit 1;`, *channelId)

if err := …
Run Code Online (Sandbox Code Playgroud)

sql postgresql go

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