小编Alf*_*ang的帖子

PHP 简短语句使变量回退到默认值

众所周知,如果我们使用 javascript 或 python,我们可以使用下面的语句来获取变量或其默认值。

// javascript
alert(a || 'default');

# python
print(a or 'default');
Run Code Online (Sandbox Code Playgroud)

在 php 中,我们可能需要调用以下命令:

echo $a ? $a : 'default';
Run Code Online (Sandbox Code Playgroud)

如果 $a 是一个很长的语句,情况就更糟了:

echo (
    we_made_many_calculation_here_and_this_is_the_result() ?
    we_made_many_calculation_here_and_this_is_the_result() :
    'default'
);
Run Code Online (Sandbox Code Playgroud)

或者

var $result = we_made_many_calculation_here_and_this_is_the_result();
echo $result ? $result : 'default';
Run Code Online (Sandbox Code Playgroud)

以上任何一个,我认为都不够简洁。

我盲目地寻找任何答案,寻找语句或内置函数来简化工作。但尝试了多种方法后,我都找不到答案。

所以请帮忙。

php syntax function

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

Vue.js 2:如何从.vue文件初始化(构造)Vue组件?

我正在尝试创建一个Component实例:

App.vue

import MyComponent from './components/MyCompnent.vue';
export default {
    mounted() {
        // The following line fails.
        const vm = new MyComponent();
        vm.$mount('#some-place');
    }
}
Run Code Online (Sandbox Code Playgroud)

并且该new行报告错误:

未捕获的TypeError:MyComponent.default不是构造函数

那么如果我想创建组件呢?

mvvm ecmascript-6 vue.js vue-component vuejs2

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

vsftpd:确保数据传输已加密?

所以这是我的“问题”,感谢vsftpd,我设置了一个FTP服务器,以便登录和数据传输均应加密。

这是我的vsftpd.conf文件中有趣的部分。

ssl_enable=YES
allow_anon_ssl=NO
require_ssl_reuse=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES

rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_ciphers=HIGH
Run Code Online (Sandbox Code Playgroud)

我使用Filezilla作为FTP客户端,连接配置如下:

Protocol : FTP - File Transfer Protocol
Encryption : Require explicit FTP over TLS
Logon type: Normal
Run Code Online (Sandbox Code Playgroud)

注意事项:

  • 加密:普通FTP:不起作用,对此我感到满意。(响应:530非匿名会话必须使用加密。)

  • 加密:要求通过TLS的隐式FTP:也不起作用,服务器拒绝连接。我猜这是因为我强制执行SSL连接。

现在,一旦(显式)连接建立,Filezilla将在窗口底部显示一个小锁图标,指示连接已加密。单击图标了解详细信息

我想确保数据传输确实是加密的而不是简单的,所以我捕捉到了一切。将文件从我的服务器下载到我的计算机上时,请使用Wireshark卡。

除了找不到SSL协议的单个数据包外,其他所有内容都是TCP。

我没有关于如何确保传输的数据被加密的想法,即使filezilla如此说,并且每次我在Google上搜索“ vsftpd如何确保数据的传输被加密”时,我得到的唯一答案就是“ ssl_enable = YES”或“选中使用SSL复选框” ...

预先感谢您对我的帮助!

ftp ssl filezilla wireshark vsftpd

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

在Python中将自定义对象序列化为JSON的方法

通常,我们可以定义__str__方法来str(obj)返回我们想要的东西.

但是现在我想定义我的Model对象以在使用时返回默认的JSON字符串json.dumps(obj).

有没有什么好方法可以在类中声明一个方法来执行此操作?

class MyClass:
    ...
    def __json__(self):
        return {'name': self.name, 'age': self.age}

obj = MyClass()

json.dumps(obj) # returns the same as json.dumps(obj.__json__)
Run Code Online (Sandbox Code Playgroud)

python json

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

渲染图像以从文件输入标记中选定的文件进行预览

现在我有一个表单字段:

<input id="my_img_field" type="file"/>
Run Code Online (Sandbox Code Playgroud)

在浏览器中选择图像后,我想在目标img标签上渲染所选图像文件:

<img id="image_preview" />
Run Code Online (Sandbox Code Playgroud)

但我想在$('#my_img_field').change事件发生后执行此操作,即我可能希望稍后单击某个按钮时完成此操作。

我听说这可以使用 HTML5 技术来完成。有人可以教我怎么做吗?

html image

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

使用css3根据体宽设置font-size

我想设置font-size<body>是自身的宽度(5% body).

有没有纯粹的css3方法来做到这一点?

我现在用jquery做这个,但我希望它更简单:

$(function() {

    var $body = $('body');

    function adjust_font_size() {
        $body.css('font-size', $body.width()*0.05+'px');
    }
    adjust_font_size();
    $(window).resize(adjust_font_size);


});
Run Code Online (Sandbox Code Playgroud)

css font-size css3 responsive-design

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

如何使用 jQuery 检查是否存在任何 ajax 挂起?

我正在尝试采取一些行动:

var function some_action() {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但是这个动作需要所有的ajax都完成,所以我是这样写的:

$(document).one('ajaxStop', some_action);
Run Code Online (Sandbox Code Playgroud)

好的,当所有挂起的 ajax 请求完成时,该函数将被触发。

但有时当我这样做时,没有待处理的ajax请求,因此one在这些情况下事件不会触发!

所以我正在寻找一种方法来检查是否有任何 ajax 请求正在进行?

喜欢:

if($.hasAjaxRunning()) {
    $(document).one('ajaxStop', some_action);
} else {
    some_action();
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以保证该动作被解雇。

ajax jquery

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

使用JavaScript的HTML前端SVG导出下载

我正在使用highcharts创建SVG图表。因此,该图表显示在前端,带有svgHTML标记。

现在,我想将该图表导出为SVG文件。


我的努力

由于SVG纯粹是在前端生成的,因此后端对此一无所知。而且,如果我想使用某些内容来初始化下载,那么我所知道的就是对内容进行HTTP响应。

因此,我可以简单地将SVG内容捕获为字符串,然后使用HTTP请求上传它,然后按原样响应内容。


我要更好

我认为从逻辑上讲,无需通过这种方式进行转移,因为前端知道我们想要的一切。

我寻求您的帮助:是否可以在前端初始化下载?

html javascript html5 svg http

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

Python3+Django1.10+mysqlclient1.3.9:无法保存表情符号字符

在管理面板中保存带有表情符号字符的字段时,我在 django 中收到以下错误。

/admin/core/message/add/ 处的操作错误(1366,“第 1 行的列 'name' 的字符串值不正确:'\xF0\x9F\x98\x9E \xF0...'”)

我确信数据库已准备好utf8mb4,因为我可以在 中写入/读取这些表情符号字符phpmyadmin

此外,保存的表情符号字符在 django 输出中正确显示phpmyadmin但显示???

在我的另一个 django 项目中,表情符号表现得很好,直到我找不到两个环境之间的差异。

那么当我使用 python 保存同样的东西时会出现什么问题呢?

问题出在 django 框架下,所以我想要一个使 django 工作的解决方案。

python mysql django mysql-python emoji

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

Jenkins 在远程 docker 代理中运行 sh 卡住

问题

我配置了一个远程 docker 实例(在服务器 A 上),可以tcp://server_a:2376为 API 提供服务。

我在服务器 B 上部署了一个 Jenkins 服务器,使用(Dockerjenkinsci/blueocean镜像)。

现在我可以通过 TCP 端口访问服务器 A 上的 Docker 实例:

DOCKER_HOST=tcp://<server_a>:2376 docker ps
DOCKER_HOST=tcp://<server_a>:2376 docker exec some_container "ls"
Run Code Online (Sandbox Code Playgroud)

以上操作都没有问题。

但是,当我制作一个通过 Server-A-Docker 作为代理运行的管道脚本时,问题出现了,命令sh卡住了,并告诉我:

进程显然从未在 /var/jenkins_home/workspace/agent-demo@tmp/durable-1ddcfc03 中启动

(使用 -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true 临时运行 Jenkins 可能会使问题更清楚)


管道脚本

node {
    docker.withServer('tcp://<server_a>:2376') {
        docker.image('python:latest').inside() {
            sh "python --version"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

管道控制台输出

在此输入图像描述

Started by user iotsofttest
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/agent-demo …
Run Code Online (Sandbox Code Playgroud)

linux jenkins docker docker-compose jenkins-pipeline

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