小编jdi*_*jdi的帖子

"u"符号在字符串值前面的含义是什么?

是的,简而言之,我想知道为什么我会在我的钥匙和价值观面前看到au.

我正在渲染表格.表单具有特定标签的复选框和ip地址的一个文本字段.我正在创建一个字典,其中键是标签,在list_key中是硬编码的,字典的值是从表单输入(list_value)中获取的.字典已创建,但前面有一些值的u.这是字典的示例输出:

{u'1': {'broadcast': u'on', 'arp': '', 'webserver': '', 'ipaddr': u'', 'dns': ''}}
Run Code Online (Sandbox Code Playgroud)

谁能请解释我做错了什么.当我在pyscripter中模拟类似的方法时,我没有收到错误.欢迎任何改进代码的建议.谢谢

#!/usr/bin/env python

import webapp2
import itertools
import cgi

form ="""
    <form method="post">
    FIREWALL 
    <br><br>
    <select name="profiles">
        <option value="1">profile 1</option>
        <option value="2">profile 2</option>
        <option value="3">profile 3</option>
    </select>
    <br><br>
    Check the box to implement the particular policy
    <br><br>

    <label> Allow Broadcast
        <input type="checkbox" name="broadcast">
    </label>
    <br><br>

    <label> Allow ARP
        <input type="checkbox" name="arp">
    </label><br><br>

    <label> Allow Web traffic from external address to internal webserver
        <input type="checkbox" name="webserver">
    </label><br><br>

    <label> …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine

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

用于将cython中的许多c ++类包装到单个共享对象的项目结构

我在这里找到了文档,邮件列表和这个问题之间的部分答案,但我希望得到更直接的答案来解决我的具体问题......

我正在学习cython,试图一点一点地包装我已经使用的库,当前包含在boost :: python中的库.我为这个boost包装器贡献了一点点,并将它用作c ++参考,同时我使用ZeroMQ Python绑定作为cython参考.

我的问题是关于项目结构.这个lib的当前boost版本编译为单个.so,这是我的目标.我很快发现你不能直接将多个.pyx模块编译成一个.so.然后我开始沿着定义文件中的cppclass's' pxd及其相应的python导出的实现类的路径.pxi,并试图将它们包含在单个文件中pyx进行编译.虽然它最初起作用,但是一旦我写了一点,我就会因为pxi包含在不同的地方而遇到多个定义冲突的问题.

我很想听到一个适当的组织方法来解决以下问题和目标:

  • 将公共类命名为cppclass(我现在通过将cppclass放在不同的命名中pyd并使用导入的命名空间来处理类似的名称,ala 使用cimport来解决命名冲突)
  • 单个.so作为编译输出(可接受的方法?)
  • 单独使用pyx多包含方法进入主要方法pyx,还是主要pyx包含除了包含包含之外的其他内容?
  • 在哪里集中定义将在python中导出的常量?
  • 是否有首选的文件夹结构?现在我把所有东西src放在我的下面一个大目录中setup.py.看到这么多pxi, pxd, pyx文件会让人感到困惑.
  • pxi现在完全没有必要?如果没有,我是否需要使用cython风格的ifndef防护来处理不同模块之间的多个包含?
  • 我知道ZeroMQ python绑定构建了多个模块,并通过包含它们来使用包方法__init__.py.这真的是cython的正确方法吗?

作为参考,我正在练习重新包装的项目是PyOpenNI(openni).此boost项目采用的模式是在一个地方收集公共对象,然后使用源定义一对一的头定义,然后有一个巨大的包装器将所有定义收集到单个位置.还有添加的自定义异常处理和实用程序.

c++ python design-patterns cython

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

为什么操作系统会限制文件描述符?

在我尽力研究实现消息队列服务器的最佳方法后,我问了这个问题.为什么操作系统会限制进程和全局系统可以拥有的打开文件描述符的数量?我当前的服务器实现使用zeromq,并为每个连接的websocket客户端打开一个订阅者套接字.显然,单个进程只能将客户端处理到fds的极限.当我研究这个主题时,我发现了很多关于如何将系统限制提高到高达64k fds的信息,但它从未提到它如何影响系统性能以及为什么它开始时为1k或更低?我目前的方法是尝试使用自己的循环中的协程向所有客户端发送消息,以及所有客户端及其订阅通道的映射.但我只是想听听关于文件描述符限制以及它们如何影响试图在每个客户端级别使用持久连接的应用程序的可靠答案?

operating-system file-descriptor message-queue zeromq websocket

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

具有嵌套命名空间的argparse子命令

argparse是否提供内置工具,使其将组或解析器解析为自己的命名空间?我觉得我必须在某个地方错过一个选项.

编辑:这个例子可能不是我应该做的,以构建解析器来实现我的目标,但这是我迄今为止所做的.我的具体目标是能够为子解析器提供被解析为命名空间字段的选项组.我与父母的想法只是为了同样的目的使用共同的选项.

例:

import argparse

# Main parser
main_parser = argparse.ArgumentParser()
main_parser.add_argument("-common")

# filter parser
filter_parser = argparse.ArgumentParser(add_help=False)
filter_parser.add_argument("-filter1")
filter_parser.add_argument("-filter2")

# sub commands
subparsers = main_parser.add_subparsers(help='sub-command help')

parser_a = subparsers.add_parser('command_a', help="command_a help", parents=[filter_parser])
parser_a.add_argument("-foo")
parser_a.add_argument("-bar")

parser_b = subparsers.add_parser('command_b', help="command_b help", parents=[filter_parser])
parser_b.add_argument("-biz")
parser_b.add_argument("-baz")

# parse
namespace = main_parser.parse_args()
print namespace
Run Code Online (Sandbox Code Playgroud)

这是我得到的,显然:

$ python test.py command_a -foo bar -filter1 val
Namespace(bar=None, common=None, filter1='val', filter2=None, foo='bar')
Run Code Online (Sandbox Code Playgroud)

但这就是我真正追求的:

Namespace(bar=None, common=None, foo='bar', 
          filter=Namespace(filter1='val', filter2=None))
Run Code Online (Sandbox Code Playgroud)

然后,更多的选项组已经解析为名称空间:

Namespace(common=None, 
          foo='bar', bar=None,  
          filter=Namespace(filter1='val', filter2=None),
          anotherGroup=Namespace(bazers='val'),
          anotherGroup2=Namespace(fooers='val'), …
Run Code Online (Sandbox Code Playgroud)

python namespaces argparse

12
推荐指数
3
解决办法
5519
查看次数

Sencha Architect的预期协作工作流程是什么?

我开始对Sencha Architect进行试验,我越用它就会出现更多的问题,因为它在开发环境中的实际可行性使用,我遇到的一个更大的问题是

在无法编辑不同编辑器中的单个文件的环境中,多人如何协作开发网站的不同部分,例如

app/models|components|views/Model1.js  <- In charge of developer one
app/models|components|views/Model2.js  <- In charge of developer two.
Run Code Online (Sandbox Code Playgroud)

例如,在常规环境中,你可以使用git来分发每个文件,但是在架构师中,你不需要手动编辑文件(这很糟糕,因为在配置文件中没有公开像配置文件这样的功能).如果您手动编辑它们,它将导致问题,或者它可能会将代码覆盖回项目文件中的任何数据,因此我想知道Sencha正确或预期的协作工作流程是什么.

extjs sencha-touch sencha-touch-2 sencha-architect

11
推荐指数
3
解决办法
4904
查看次数

用嵌套枚举包装结构 - 在向量模板中引用

这是我在一天半前在cython用户组中提出的一个问题交叉帖子,但还没有得到任何回复,所以我在一个更一般的论坛上试试我的运气

我一直在尝试用以下方法来包装以下代码,并且存在各种程度的错误.大量的搜索使我绊倒了类似的问题,也是一张出色的心愿单,但说实话,我不确定我是否在正确的道路上.

plow_types.h:

namespace Plow {

    struct JobState {
      enum type {
        INITIALIZE = 0,
        RUNNING = 1,
        FINISHED = 2
      };
    };
    ...
    class JobFilterT {
     public:
      ...
      std::vector<JobState::type>  states;
      ...
Run Code Online (Sandbox Code Playgroud)

所以我试图包装这个Plow::JobState::type枚举.在找到另一个类似的帖子后,我得到的最接近的结果就是这次尝试:

plow_types.pxd:

cdef extern from "rpc/plow_types.h" namespace "Plow":

    enum JobState_type "Plow::JobState::type":
        INITIALIZE "Plow::JobState::INITIALIZE"
        RUNNING "Plow::JobState::RUNNING"
        FINISHED "Plow::JobState::FINISHED"

    struct JobState:
        JobState_type type
    ...
    cdef cppclass JobFilterT:
        vector[JobState_type] states 
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

src/plow.cpp: In function ‘std::vector<Plow::JobState::type, std::allocator<Plow::JobState::type> > __pyx_convert_vector_from_py_enum__Plow_3a__3a_JobState_3a__3a_type(PyObject*)’:
src/plow.cpp:6688: error: invalid conversion from …
Run Code Online (Sandbox Code Playgroud)

c++ python enums nested cython

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

从用户输入创建动态命名的变量

我正在学习编程,并且正在学习Python作为我的第一语言.作为练习,我正在尝试编写一个地址簿程序.用户使用命令提示符创建新联系人.新联系人是Contacts类的对象实例.

我知道如何从代码中实例化一个类对象,但是如何根据用户输入创建一个带有变量名的对象呢?假设我提示用户输入一个名称 - 如何获取该信息并将其用于我的新对象的变量名称?

谢谢!!

python

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

Web客户端和移动REST api安全性的推荐配置

我意识到这个问题有很多问题,我现在已经研究了几天了.我想确保我的问题尽可能具体,因为我还没有充分了解最佳方法.

目前我有一个开发的django站点,Web客户端可能通过django-piston json REST api进行大约95%的通信.另外5%是一些重新登录功能,仍然通过具有CSRF保护的POST表单.理想情况下,我想将其余部分也移到REST api中.

我现在需要找到最佳的推荐解决方案,以便以可重用且愉快的共存方式保护Web客户端和移动客户端(应用程序尚未开发).我已经阅读了很多帖子,最终为移动端推荐OAuth2(和https),但我仍然对如何设置Web客户端安全性感到困惑.我也在理解OAuth2方面以及我是否可以使用双腿形式.就目前而言,Web客户端是经过django身份验证的.从技术上讲,jsonp功能在活塞中仍然有效,所以我认为任何人都可以使用第三方应用程序的api,只要他们的网络会话有auth cookie?

我api的用法总结:

  1. API是服务器应用程序的完全私有接口
  2. 如果第三方Web客户端mashup无法广泛重用API,那将是理想的选择.
  3. 数据不是necc敏感的.它只是一个社交类型的网站,其中最个人的信息是电子邮件,地址等基本用户配置文件.

我的问题摘要:

  1. OAuth2是保护移动应用访问安全的最佳推荐方法吗?它与Web客户端方面有什么关系吗?如果推荐OAuth2,它应该是应用程序版本的应用程序范围的密钥吗?
  2. Web客户端是否应该使用通过ajax传递的CSRF,并且只是禁用jsonp以确保其始终相同的来源?基本上,我是否单独处理Web客户端安全性?
  3. 我应该如何组织urls/app实例/子域或建议维护Web与移动安全的任何内容?我是否只需要单独的网址前缀,一个用于使用不同规则的移动设备?

我正在寻找django-piston针对解决这些问题的具体建议.我已经分支了我的项目并开始使用这个分叉版本的活塞:https://bitbucket.org/jespern/django-piston-oauth2

我有一个想法是创建一个活塞资源,首先检查它是否同源,然后只强制执行django auth,否则它强制执行oauth2,但我不确定这是否合适.

2012年1月1日更新

根据Spike提供的信息,我开始使用piston-oauth2.我最终创建了一个fork来为nonrel django(mongodb)添加一些修复程序,我分叉someone示例也使用oauth2和活塞:

https://bitbucket.org/justinfx/django-piston-oauth2-nonrel-example

现在只是我的一个问题,真正把它连接到我自己的项目并使其工作.但这些测试都很有效.

django mobile restful-authentication django-piston oauth-2.0

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

Watchdog(osx)未通知远程网络更改

我正在使用Watchdog监视网络目录,非递归,以便随着时间的推移创建特定模式的文件.我看到的问题是,虽然我在本地测试时效果很好,但如果我从远程计算机更改受监控目录,则不会触发事件.

以下是我配置的具体细节:

  • OSX
  • 在NFS挂载上监视单个目录,非递归
  • python 2.6

使用stock示例代码段可以轻松复制我的问题示例:

import sys
import time
import logging
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler

if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s - %(message)s',
                        datefmt='%Y-%m-%d %H:%M:%S')
    event_handler = LoggingEventHandler()
    observer = Observer()
    observer.schedule(event_handler, path=sys.argv[1], recursive=False)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()
Run Code Online (Sandbox Code Playgroud)

如果在网络目录上启动它,然后从同一系统进行更改,则会调度事件.但是,如果您随后从网络上的另一台计算机更改目录,则不会调度任何事件.

我是否遗漏了关于kqueue限制的内容(或者可能是OSX上的FSEvents,因为它首先由Watchdog表示首选)?

我在这个python包上被激怒了,并且开始将它用于替换文件系统轮询的其他脚本,但我似乎无法找到有关我为何看到此问题的任何信息.

更新

我还测试了MacFSEvents并遇到了同样的问题.然后我修改了上面的测试脚本,强行尝试不同的观察者:

# does not work with remote changes
from watchdog.observers.fsevents import FSEventsObserver as Observer
# does not work with remote changes
from watchdog.observers.kqueue …
Run Code Online (Sandbox Code Playgroud)

python monitoring watchdog fsevents kqueue

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

try..catch宏包装器等效于cython

我正在包装大量的C++函数,如果底层套接字连接丢失,可能引发异常.虽然我已经知道如何来包装我的"获取连接"功能重新建立连接和/或尝试在列表中的其他可用的服务器,我不能想出一个解决方案来创建一个try..except包装提供给80 + C++函数.

#-- client.pxd ---

cdef extern from "rpc/RpcService.h": 
    cdef cppclass RpcServiceClient:
        void getProject(ProjectT&, Guid& id) nogil except +

cdef extern from "client.h":
    cdef cppclass Client:
        RpcServiceClient proxy() nogil 

    cdef Client* getClient() nogil except +


#-- module.pxd ---

cdef inline Client* conn() except *:
   # wrap getClient() here with try..except if the 
   # connection was never established

cpdef inline get_project(Guid& guid):
    cdef: 
        ProjectT projT  # cpp object
        Project project # cdef python class

    # this would catch fine in …
Run Code Online (Sandbox Code Playgroud)

c++ python macros cython

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