小编kad*_*ian的帖子

在python中加入一个字符串列表,并用引号将每个字符串包装起来

我有:

words = ['hello', 'world', 'you', 'look', 'nice']
Run Code Online (Sandbox Code Playgroud)

我希望有:

'"hello", "world", "you", "look", "nice"'
Run Code Online (Sandbox Code Playgroud)

使用Python最简单的方法是什么?

python string join list

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

如何:Macports选择python

当我进入:

port select --list python
Run Code Online (Sandbox Code Playgroud)

这是结果:

Available versions for python:
    none
    python25 (active)
    python25-apple
    python26-apple
    python27
    python27-apple
Run Code Online (Sandbox Code Playgroud)

我以为当我使用python时我会使用版本2.5.相反,当我输入"python"时,2.7版似乎是活跃的.如何将其更改为2.5版?

Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Run Code Online (Sandbox Code Playgroud)

python version macports python-2.5 python-2.7

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

Flask-WTF - validate_on_submit()永远不会执行

我正在使用Flask-WTF:

这是我的表格:

from flask.ext.wtf import Form, TextField

class BookNewForm(Form):
    name = TextField('Name')
Run Code Online (Sandbox Code Playgroud)

这是控制器:

@book.route('/book/new', methods=['GET', 'POST'])
def customers_new():
    form = BookNewForm()
    if form.is_submitted():
        print "submitted"
    if form.validate():
        print "valid"
    if form.validate_on_submit():
        flash("Successfully created a new book")
        return redirect(url_for('.books_show'))
    return render_template('views/books_new.html', form=form)
Run Code Online (Sandbox Code Playgroud)

现在的问题是,如果你查看我的print语句,它总是打印提交,但它永远不会打印有效,并且从不执​​行validate_on_submit().为什么?

python forms validation flask wtforms

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

如何改变我的git的语言?

我的'git'是德语,它说:

'祖夫茨威格大师'

代替

On branch master

git status.

这是什么原因?

linux git terminal command-line

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

重定向回Flask

我有一个名为Item的数据库表.Item有一个status属性,可以是

new
todo
doing
done
Run Code Online (Sandbox Code Playgroud)

在我的网站上,我有两个显示Item表的视图.

  • 视图1显示所有项目(具有状态列).
  • 视图2 显示具有状态的项目todo.

根据项目状态,用户可以执行某些操作("移至待办事项","移至执行","移至完成").

如果您考虑视图1和视图2,它们都有共同点,它们包含具有状态的项目todo.所以两者都有一个Button链接到一个名为的URL

/Item/<id>/moveToDoing
Run Code Online (Sandbox Code Playgroud)

其中id - 项目状态设置为"正在进行".

现在我希望将用户重定向回他点击按钮的位置(View 1或View 2).

我的问题是:

  1. 如何使用Flask做到这一点?我觉得 http://flask.pocoo.org/snippets/62/并不是我需要的,因为我在这里没有带有公式的POST请求.(我是不是该?)
  2. 我是以正确的方式做到这一点还是有关于如何正常解决这个问题的惯例?

python redirect flask

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

Howto:使用Flask在WTForms中动态生成CSRF-Token

我有一个水果表单,其中有一个香蕉的FieldList对象:

bananas = FieldList(FormField(BananaForm))
Run Code Online (Sandbox Code Playgroud)

在前端,最初,我将其中一个字段添加到FieldList

form.append_entry()
Run Code Online (Sandbox Code Playgroud)

现在使用Javascript我设法创建函数,可以动态添加(加按钮)或删除(减去按钮)可以填充信息的BananaForm字段的数量.

FielstList会自动为其所有字段创建ID.所以要使用js动态添加,我复制HTML代码并设置字段id + = 1,如:

第一场:

<tr>
  <td><input id="bananas-0-originCountry" type="text" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

带有+ = 1的重复字段:

<tr>
  <td><input id="bananas-1-originCountry" type="text" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

当我这样相应地命名并提交表单时,WTForms将自动识别后端中添加的字段(工作正常).

到目前为止一切都很好,但这是我的问题:要使表单有效,我必须为每个WTForm添加CSRF字段.在Jinja模板中,我这样做:

{{ form.hidden_tag() }}
Run Code Online (Sandbox Code Playgroud)

但是,当我只使用我的js函数复制HTML时,我缺少CSRF字段(因为在提交之前,后端表单对象不知道添加的FormFields).那么如何动态生成这些CSRF字段呢?(一个Ajax请求?如果是,怎么样?)

这应该是表格和烧瓶的标准用例.我希望我的描述是可以理解的,如果没有,请告诉我.任何帮助赞赏!

更新:这是我的代码

JS-功能

function addBanana(){
    // clone and insert banana node
    var node = document.getElementById("fruitTable");
    var trs = node.getElementsByTagName("tr");
    var tr = trs[trs.length-2];
    var tr2 = tr.cloneNode(true);
    tr.parentNode.insertBefore(tr2, tr);

    // in order to increment label and input field ids
    function plusone(str){
        return str.replace(
            new RegExp("-(\\d+)-", "gi"),
            function($0, …
Run Code Online (Sandbox Code Playgroud)

javascript validation csrf flask wtforms

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

如何在Ruby中声明二维数组

我想在Ruby中使用一个二维数组,我可以像下面这样访问:

if @array[x][y] == "1" then @array[x][y] = "0"
Run Code Online (Sandbox Code Playgroud)

问题是:我不知道数组维度的初始大小,并且我增长了数组(使用<<运算符).

如何将其声明为实例变量,所以我没有这样的错误?

undefined method `[]' for nil:NilClass (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

问题更新:

@array = Array.new {Array.new} 
Run Code Online (Sandbox Code Playgroud)

现在对我有用,所以下面马特的评论是正确的!

我刚刚发现我收到错误的原因是因为我迭代了这个数组:

for i in 0..@array.length
    for j in 0..@array[0].length
        @array[i][j] ...
Run Code Online (Sandbox Code Playgroud)

这显然是错误的,并产生了错误.它必须是这样的:

for i in 0..@array.length-1
        for j in 0..@array[0].length-1
            @array[i][j] ...
Run Code Online (Sandbox Code Playgroud)

ruby arrays matrix multidimensional-array conways-game-of-life

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

在vim中使用:g命令,可以执行多个操作

我怎么能用这样的东西?

:g/^$/kJ
Run Code Online (Sandbox Code Playgroud)

这里kJ是两个命令,而不是只有一个(如'd')

我的具体例子:我有多条线看起来像这样

queryBuilder
    .append("xyz");
Run Code Online (Sandbox Code Playgroud)

我想让它们看起来像这样:

queryBuilder.append("xyz");
Run Code Online (Sandbox Code Playgroud)

所以我想为每一行做的是

:g/^[\t]*\..*$/kJx
Run Code Online (Sandbox Code Playgroud)

它匹配正确的模式,但似乎只执行k.

其他vim命令在这里适用吗?你将如何执行这项任务?

regex vim text-processing command macvim

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

Qt 5和OS X Mavericks问题

我正在使用Cmake在OS X 10.9上构建一个QT项目.

自Mavericks以来,OpenGL标题的位置似乎已经发生了变化./System/Library/Frameworks/OpenGL.framework/Headers现在缺少该文件夹,cmake说

CMake Error at /Applications/Qt/5.1.1/clang_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:8 (message):
  Failed to find "gl.h" in
  "/System/Library/Frameworks/OpenGL.framework/Headers"
  "/System/Library/Frameworks/AGL.framework/Headers""."
Run Code Online (Sandbox Code Playgroud)

并要求我在这个变量中提供正确的路径_qt5gui_OPENGL_INCLUDE_DIR,我尝试使用它们显然将标题移动到Mavericks中的路径:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Headers
Run Code Online (Sandbox Code Playgroud)

但我仍然得到以下cmake错误:

CMake Error at /Applications/Qt/5.1.1/clang_64/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:15 (message):
  The imported target "Qt5::Gui" references the file

     "/System/Library/Frameworks/OpenGL.framework/Headers"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/Applications/Qt/5.1.1/clang_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake"

  but not all the files …
Run Code Online (Sandbox Code Playgroud)

c++ opengl qt cmake osx-mavericks

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

如何将数据库对象序列化/表示为节点中 API 返回的 JSON

我正在使用express.jssequelize.js构建 API。一旦我使用 sequelize 从数据库中检索了一个对象,我想

  • 过滤掉对象属性(例如检索用户,但不要将用户的密码哈希呈现为返回的 JSON)
  • 添加新的对象属性

在我将它作为 JSON 从 API 返回之前。

类似于这些 Rails 库的作用:

在节点中执行此操作的最常见框架是什么?或者做sequelize.js/express.js包含这样做的功能?

更新

好的,有一个基本的例子,passport.js 从数据库中获取经过身份验证的用户对象并将其附加到req.user;

router.get('/me/data',
  passport.authenticate('bearer', { session: false }),
  function(req, res) {
    res.status(200).send(req.user);
  }
);
Run Code Online (Sandbox Code Playgroud)

这将返回以下 JSON 响应:

{
  "id": 24,
  "first_name": "John",
  "last_name": "Doe",
  "email": "mymail@example.com",
  "password": "8d23cb9c4827bc06bb30ac47c06af0efbdbeb575001ab7de5387da4085f7184a381335c0f04b45f4a40e5a7042d47ae1e2d29d28fd5be1d534f09ba3db04e8ca",
  "updatedAt": "2016-01-25T09:19:07.422Z",
  "createdAt": "2016-01-25T09:19:07.422Z",
  "data": null
}
Run Code Online (Sandbox Code Playgroud)

但我想返回这样的东西:

{
  "id": 24,
  "full_name": "John Doe",
  "email": "mymail@example.com",
  "data": null
}
Run Code Online (Sandbox Code Playgroud)

不仅在这种情况下,而且在任何情况下都会呈现用户对象。

api json node.js express sequelize.js

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