小编tru*_*com的帖子

如何在django中获取视图函数的url路径

举个例子:

view.py

def view1( request ):
    return HttpResponse( "just a test..." )
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns = patterns('',
    url( r'^view1$', 'app1.view.view1'),
)
Run Code Online (Sandbox Code Playgroud)

我想获得的URL路径view1.我怎样才能做到这一点.我想避免硬编码任何URL路径,例如"xxx/view1".

python django

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

在python线程安全中是+ =?

globalnum = 0
n = 1

class T( threading.Thread ):
  def run( self ):
    global globalnum
    globalnum += n

for _ in xrange( 0, 999 ):
  t = T()
  t.start()

print globalnum
Run Code Online (Sandbox Code Playgroud)

结果是999在我的测试中我似乎+ =线程安全我的问题是:是+ =真的线程安全吗?

python

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

如何在python3.3中将字节写入stdout

名为== a.py ==的测试文件

import os

if __name__ == '__main__':
    for x in range(0,1000):
        try:
            os.sys.stdout.buffer.write(b"hello\r\n")
            os.sys.stdout.buffer.flush()
        except OSError:
            pass
Run Code Online (Sandbox Code Playgroud)

它独自运行时没关系.但以下情况有问题:

  1. 运行python a.py | 更多
  2. 按ctrl + c退出

然后我在<_io.TextIOWrapper name =''mode ='w'coding ='cp936'>忽略了Exception OSError:OSError(22,'Invalid argument')

我已经在os.sys.stdout.buffer操作中捕获了OSError,但它仍然出错.

如果我不使用os.sys.stdout.buffer.flush,那么没有错误消息.如果我只使用print(),一切都OK.

那么如何正确地将字节写入stdout呢?

我使用的是Windows 7 64位和Python 3.3.0 32位.

python python-3.x

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

Python gevent 我没有看到猴子修补了默认文件打开/读/写/关闭,如何在 gevent 中使文件 io 异步

在gevent猴子补丁中,我没有看到任何有关默认文件对象操作的信息。如何在基于 gevent 的程序中使用异步文件读/写?

python gevent

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

python os.listdir不显示所有文件

在我的windows7 64bit系统中,有一个以msconfig.exe文件夹命名的文件c:/windows/system32.是的,它必须存在.

但是当我os.listdir用来搜索文件夹c:/windows/system32时,我没有得到该文件.这是测试代码,在t1.py:

import os
files = os.listdir("c:/windows/system32")
for f in files:
    if f.lower() == "msconfig.exe":
        print(f)
Run Code Online (Sandbox Code Playgroud)

运行python后t1.py,我什么都没得到.为什么错过文件?如何列出文件夹下的所有文件?

BTW:我在windows 7 64bit下使用python 3.3.0 32bit版本

python python-3.3

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

怎么做正确:grep -ri' - >'

cat a.txt | grep -ri '->'
Run Code Online (Sandbox Code Playgroud)

我想用文本箭头 - > grep行.但是在linux shell中 -意味着选项的启动
并且 >意味着管道输出到文件.

所以在完成上面给出的命令后,我得到了错误

[root@rs169 document_root]# cat a.txt | grep -ri '->'
grep: invalid option -- '>'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
Run Code Online (Sandbox Code Playgroud)

有人能说出如何正确地做到这一点吗?

linux shell

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

python3 datetime.datetime.strftime无法接受utf-8字符串格式

python3 datetime.datetime.strftime无法接受utf-8字符串格式

我做的是::

# encoding: utf-8
import datetime

f = "%Y?%m?%d?"
now = datetime.datetime.now()
print( now.strftime(f) )
Run Code Online (Sandbox Code Playgroud)

而我得到的是:

D:\pytools>python a.py
Traceback (most recent call last):
  File "a.py", line 6, in <module>
    print( now.strftime(f) )
UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2
: Illegal byte sequence
Run Code Online (Sandbox Code Playgroud)

为什么以及如何解决这个问题?

python unicode python-3.x

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

为什么线程id变得如此之大

In [19]: threading.currentThread().ident
Out[19]: 139639576676096
Run Code Online (Sandbox Code Playgroud)

139639576676096是我在mysql CENTOS框中的线程ID.可以吗?为什么线程ID变得如此之大?

python linux multithreading

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

keepalived 在没有 iptables 的情况下也能正常工作

我已经设置了 keepalived,只有当我停止 iptables 服务时它才能正常工作。我的 iptables 配置是这样的,请告诉我应该为 keepalived 添加哪些规则

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22   -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80   -j …
Run Code Online (Sandbox Code Playgroud)

iptables

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