小编Mik*_*.K.的帖子

如何像Python中的ERB一样模板?

ERB,如果你不熟悉它,是Ruby On Rails和许多其他Ruby项目使用的模板语言.简而言之,它允许您评估HTML模板中的原始ruby代码并呈现结果.

考虑以下:

#hello.erb
<html>
<body>
  <p>Hello, <%= @name %></p>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)

Ruby实例变量@name将被替换并呈现在用户看到的页面上.

现在,Python有被称为通用模板语言的Jinja2(大多采用几乎相同的方式,其工作在{{ }}s,而不是<% %>多个),但有两个之间有一个很大的不同:

ERB允许您使用任何有效的Ruby代码,而Jinja2只有非常有限的Python-esque语言子集,但不是原始Python.

问题:

如何使用整个语言而不是有限的子集来使用Python模板化HTML?

python jinja2

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

阻止 Flask 初始化阻塞

我正在向基于插件的应用程序添加 Flask 支持。启动时,应用程序会实例化许多插件类。我认为这就像在类初始化时启动 Flask 一样简单,但相反,当它点击 Flask 启动方法时,整个应用程序会挂起。

考虑以下示例:

#!/usr/bin/env python

from flask import Flask

class TestClass:
    def __init__(self):
        print('Initializing an instance of TestClass')
        self.app = Flask(__name__)
        self.app.run()
        print("Won't get here until Flask terminates!")


foo = TestClass()
Run Code Online (Sandbox Code Playgroud)

在 Flask 终止之前,不会评估第二个打印行。

有没有一种明智的方法可以强制app.run进入后台,以便类继续其初始化步骤,同时仍然能够在类的其余部分中与 Flask 进行通信?

python multiprocessing flask

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

使用File.listFiles()时,IntelliJ"可能会导致NullPointerException"警告

这是仍然生成警告的最小示例:

File searchpath = new File(path);
for(File file: searchpath.listFiles()){ ... }
Run Code Online (Sandbox Code Playgroud)

(path是传递给此方法的字符串)

for循环的第二行触发IDE警告:

Dereference of searchPath.listFiles() may produce 'java.lang.NullPointerException'

鉴于我刚刚初始化变量,并且我的程序正常工作,我的第一直觉是这是一个垃圾警告.

这是一个有效的警告,如果是,我该如何清除它?

*EDIT1

如果你给它一个空路径,文件,根据它的Javadoc,将抛出一个NPE.因此,清除错误似乎是一个注释path参数的情况,因此它已知永远不会为null.

java intellij-idea

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

使用 Jenkins 管道时,有没有办法让用户响应 input() 操作?

考虑下面的例子

node {
    stage('Build') {
        echo "do buildy things"
    }

    stage('Deploy') {
        hipchatSend(
            color: "PURPLE",
            message: "Holding for deployment authorization: ${env.JOB_NAME}, job ${env.BUILD_NUMBER}. Authorize or cancel at ${env.BUILD_URL}",
        )
        input('Push to prod?') //Block here until okayed.
        echo "Deployment authorized by ${some.hypothetical.env.var}"
        echo "do deploy things"
     }
}
Run Code Online (Sandbox Code Playgroud)

响应输入时,单击按钮的用户名将存储在构建日志中。

这个用户名是否可以在我可以在另一个 hipChatSend 中使用的变量中使用?

jenkins jenkins-plugins jenkins-pipeline

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

如何在Heroku上运行控制台应用程序?

我正在尝试将一个ruby(NOT rails)应用程序部署到Heroku.我的procfile是这样布局的:

console: bundle exec ruby main.rb
Run Code Online (Sandbox Code Playgroud)

但是,我的应用程序从未实际启动过.系统上的日志都很安静,我看不到任何类似的错误输出.

如果我运行本地系统上的proc文件中显示的命令,我的程序将启动并完全按照预期运行.

更有趣的是,如果我运行heroku console,应用程序会立即启动控制台本身.看起来像是与procfile的一些交互?如何在没有连接到Heroku上的控制台的情况下自动启动我的应用并捕获标准输出?

ruby console heroku console-application

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

向现有的Pycharm项目添加Flask支持

我正在做一个小项目,在该项目中显示琐碎的网页将很有帮助。它是在专业版PyCharm中开发的。

这是一个现有项目,因此最初并不是作为Flask应用创建的。

我已将Flask添加到我的requirements.txt中,并确保已安装它。但是,我没有自动完成任何Jinja模板的操作-本质上,我创建的HTML文件被视为哑HTML。

如何让PyCharm识别出我在使用Flask并采取相应的行动?

IDE屏幕截图

python pycharm flask

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

Java中是否有一种方法可以让编译器处理互斥选项?

我想知道是否有一种方法来声明一个接受String和Enum的方法,但是如果使用某个枚举则只需要使用该字符串.

例:

public enum SearchType {
    REGEX,DEFAULT
}
public static List<File> Search(String path, SearchType search, String pattern) {
    //do things
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,只有程序员指定他们是否使用了特定的模式字符串字段SearchType.REGEX,如果您忘记了它,或者将其包含在a中SearchType.DEAFULT,您的程序将无法编译.

如果它们正在使用SearchType DEFAULT,程序员必须传入一个空字符串,并且代码必须使用几个if语句来检查互斥选项.现在,如果你包含一个带有DEFAULT的模式或忘记REGEX上的模式,我会抛出一个IllegalArgumentException,因为这两个事情都表明使用这个函数的人可能犯了一个错误.

我的问题是:

  • 是否可以使用Java 8进行这种编译时参数检查?

  • 有没有更惯用/安全/逻辑的方式来处理这种情况?

这听起来好像它可以通过某种接口来处理,如果它甚至可以完成的话.

谢谢!

java methods types class

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

在Swift中为Mac OS X应用程序使用图像库

我发现的文档非常清楚 - 我想要做的是在Mac OS X应用程序上使用提供的Xcode图像库(目录?).

iOS应用获得了能够使用效益UIKitUIImage目的来快速引用加载到目录中的图像文件.

(即:情况UIImage(imageNamed: "Something"))

由于我正在编写Mac OS应用程序而不是iOS应用程序,因此我没有得到UIKit.

我假设因为XCode默认在OS X应用程序上为我提供了相同的图像库文件,所以我想以某种方式使用它.

如何在库中引用图像?理想情况下,我可以做一些事情NSImage

macos xcode nsimage swift

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

Powershell:强制评估Add-member的-value选项中的代码块

我正在尝试使用CSV文件和powershell脚本将用户导入活动目录.我使用通常与AD对象关联的标头创建CSV:

mail,name,givenName,middleName,surname,company,department,title,plaintextPassword,path,description,userPrincipalName

......并填补了它.

现在我想使用Powershell的new-adusercmmdlet为这个表中的每个项生成用户 - 我遇到的问题是new-aduser需要一个SecureString,而不仅仅是一个帐户密码的普通字符串.跳过此转化会导致我的用户被正确创建,但没有密码并禁用了他们的帐户.

我正在使用的命令如下:

import-csv .\users.csv | add-member -passthru -memberType NoteProperty -value {$_ | select plaintextPassword | ConvertTo-SecureString -fromplaintext -force}
Run Code Online (Sandbox Code Playgroud)

结果是用户记录如下:

mail              : tom.fubar@contoso.com
name              : tom.fubar
givenName         : Tom
middleName        :
surname           : Fubar
company           : Contoso
department        : IT
title             : Technician
accountPassword   : LongPasswordThatFitsADComplexityRequirements123!
path              : OU=UserAccounts,OU=IT,OU=employees,DC=contoso,DC=com
description       : 
userPrincipalName : tom.fubar@contoso.com
encodedPassword   : {$_ | select accountPassword | ConvertTo-SecureString -asplaintext -force}
Run Code Online (Sandbox Code Playgroud)

应该评估将明文密码转换为SecureString的代码位是逐字传递的,而不是内联执行的.

强制对代码块进行求值的正确方法是什么,并将其结果用作参数New-Member -value

尝试: …

csv powershell

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

通过结束字符拆分句子

最近的一个项目让我需要将传入的短语(作为字符串)分成组成句子.例如,这个字符串:

"Your mother was a hamster, and your father smelt of elderberries! Now go away, or I shall taunt you a second time. You know what, never mind. This entire sentence is far too silly. Wouldn't you agree? I think it is."

需要将其转换为由以下元素组成的列表:

["Your mother was a hamster, and your father smelt of elderberries",
"Now go away, or I shall taunt you a second time",
"You know what, never mind",
"This entire sentence is far too silly",
"Wouldn't you agree", …
Run Code Online (Sandbox Code Playgroud)

python arrays string list

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