Tag: python

在django / python中检查电子邮件的有效性

我已经写了一个函数来添加电子邮件通讯基地。 直到我已经添加检查发送的电子邮件的有效性它完美地工作。 现在,每次我收到“错误的电子邮件”。 任何人都可以在这里看到任何错误? 使用的正则expression式是: \b[\w\.-]+@[\w\.-]+\.\w{2,4}\b并且它是100%有效的( http://gskinner.com/RegExr/ )我可能会用错,或者可能是一些逻辑错误: def newsletter_add(request): if request.method == "POST": try: e = NewsletterEmails.objects.get(email = request.POST['email']) message = _(u"Email is already added.") type = "error" except NewsletterEmails.DoesNotExist: if validateEmail(request.POST['email']): try: e = NewsletterEmails(email = request.POST['email']) except DoesNotExist: pass message = _(u"Email added.") type = "success" e.save() else: message = _(u"Wrong email") […]

什么build立与Python的sys.path,什么时候?

当我跑步 import sys print sys.path 在我的Mac(Mac OS X 10.6.5,Python 2.6.1)上,我得到以下结果。 /Library/Python/2.6/site-packages/ply-3.3-py2.6.egg … /Library/Python/2.6/site-packages/ipython-0.10.1-py2.6.egg /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6 /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload /Library/Python/2.6/site-packages /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode 他们被分为5类。 /Library/Python/2.6/site-packages/*.egg /Library/Python/2.6/site-packages 框架/ Python.framework /版本/ 2.6 / lib中/ python2.6的 框架/ Python.framework /版本/ 2.6 /额外/ lib中/python PATH从PYTHONPATH环境variables。 而且我可以使用代码添加更多的path sys.path.insert(0, MORE_PATH) 什么样的程序设置了这些path,什么时候? 有些path是用python源代码构build的吗? 是否有可能用'sys.path.insert'插入的path被忽略? 我很好奇这个,就像mod_wsgi一样,我发现path没有find'sys.path.insert'。 我问这个问题的另一个职位 。 添加 基于迈克尔的回答,我看着site.py,并得到了下面的代码。 def addsitepackages(known_paths): […]

Python:我怎么知道哪些exception可能会从方法调用中抛出

有没有一种方法知道(在编码时)执行python代码期望的exception? 由于我不知道可能引发哪种exceptiontypes,所以我最终在90%的时间内捕获了基类exception类(并且不要告诉我阅读文档,很多时候exception可以从深处传播出来,次文档不更新或正确)。 有没有某种工具来检查这个? (如通过阅读Python代码和库)?

将reStructuredTextparsing为HTML

我正在制作一个框架,让开发人员使用reStructuredText来描述他们的软件包。 我想parsing这个reStructuredText到HTML,所以我可以在GUI中显示它。 我熟悉优秀的狮身人面像,但我从来没有parsing过reStructuredText。 我想像一个函数,它需要一个reStructuredTextstring,可能还有几个额外的参数,并返回一个HTMLstring。 所以我看着Docutils,它负责parsingreStructuredText。 我根本无法理解如何find这个function。 networking上的文档是多余的。 docutils.parsers.rst模块中的许多function似乎都是针对文件名的。 我没有文件名! 我只是处理string。 我试着创build一个Parser和一个Document并使用parse方法,但我只是得到一个关于缺less.tab_width设置的错误。 有谁知道如何parsingreStructuredText到HTML?

设置文字给出了设置函数调用的不同结果

为什么set函数会调用dupe,但是parsingset literal却不行? >>> x = Decimal('0') >>> y = complex(0,0) >>> set([0, x, y]) {0} >>> {0, x, y} {Decimal('0'), 0j} (Python 2.7.12。可能与这个类似的问题相同的根本原因)

如何通过“manage.py shell”使用交互式解释器重新载入Django模型模块?

我知道如何在常规的Python解释器会话中重新加载常规的Python模块。 这个问题logging了如何做得很好: 如何卸载(重新加载)Python模块? 出于某种原因,我在Django的“manage.py shell”解释器会话中遇到了麻烦。 要重新创build我的问题,请在这里find基本的Django教程: 编写你的第一个Django应用程序,第1部分 创build“民意调查”应用程序和“民意调查”类后,通过“manage.py shell”启动解释器,并导入“民意调查”应用程序。 import polls.models as pm 创build一个新的“民意调查”对象: p = pm.Poll() 一切都很好,迄今为止。 现在回到你的源代码并添加任意的方法或属性。 例如,我添加了: def x(self): return 2+2 现在回到解释器并重新加载模块: reload(pm) 现在尝试使用你的新方法或属性: p1 = pm.Poll() p1.x() 你会得到这个消息: 'Poll' object has no attribute 'x' 是什么赋予了? 我也试着重新运行import命令,使用不同的语法导入模块,删除所有对“Poll”对象的引用或“Poll”类。 我也用IPython解释器和普通的Python(v2.6)解释器试了这个。 似乎没有任何工作。 在常规解释器会话中使用与任意Python模块相同的技术是完美的。 我似乎无法让它在Django的“shell”会话中工作。 顺便说一下,如果它有什么区别,我在Ubuntu 9.04机器上做这个。

更多Pythonic方法来运行一个过程X次

哪个更pythonic? while循环: count = 0 while count < 50: print "Some thing" count = count + 1 For循环: for i in range(50): print "Some thing" 编辑:不重复,因为这有答案,以确定哪一个更清晰,与如何运行一个范围没有“我” – 即使这最终是最优雅的

Python设置()如何检查两个对象是否相等? 对象需要定义什么方法来自定义?

我需要在Python中创build一个“容器”对象或类,它保留了我也定义的其他对象的logging。 这个容器的一个要求是,如果两个物体被认为是相同的,则去除一个(任一个)。 我的第一个想法是使用一个set([])作为包含对象,来完成这个要求。 但是,该集不会删除两个相同的对象实例之一。 我必须定义什么来创build一个? 这里是Python代码。 class Item(object): def __init__(self, foo, bar): self.foo = foo self.bar = bar def __repr__(self): return "Item(%s, %s)" % (self.foo, self.bar) def __eq__(self, other): if isinstance(other, Item): return ((self.foo == other.foo) and (self.bar == other.bar)) else: return False def __ne__(self, other): return (not self.__eq__(other)) 翻译员 >>> set([Item(1,2), Item(1,2)]) set([Item(1, 2), […]

Python:导入包含的包

在一个包内部的模块中,我需要使用该包的__init__.py中定义的函数。 我如何导入包内的模块,所以我可以使用该function? 在模块中导入__init__将不导入包,而是导入名为__init__的模块,导致具有不同名称的事件的两个副本… 有没有pythonic的方式来做到这一点?

来自列表理解的Lambdas在被调用时返回一个lambda

我想迭代在列表中的lambda func在test.py ,我想获得lambda的调用结果,而不是函数对象本身。 但是,下面的输出真的让我困惑。 ——test.py——— #!/bin/env python #coding: utf-8 a = [lambda: i for i in range(5)] for i in a: print i() ——–output——— <function <lambda> at 0x7f489e542e60> <function <lambda> at 0x7f489e542ed8> <function <lambda> at 0x7f489e542f50> <function <lambda> at 0x7f489e54a050> <function <lambda> at 0x7f489e54a0c8> 打印电话结果到t时,我修改了variables名,如下,一切顺利。 我想知道这是什么。 ? ——–test.py(update)——– a = [lambda: i for i in […]