我有一个Pylons 1.0应用程序,在测试/功能目录中有一堆测试.我得到了奇怪的测试结果,我想只运行一次测试.鼻子文档说我应该能够在命令行传递测试名称,但无论我做什么,我都会得到ImportErrors
例如:
nosetests -x -s sometestname
Run Code Online (Sandbox Code Playgroud)
得到:
Traceback (most recent call last):
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName
module = resolve_name(addr.module)
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name
module = __import__('.'.join(parts_copy))
ImportError: No module named sometestname
Run Code Online (Sandbox Code Playgroud)
我得到了同样的错误
nosetests -x -s appname.tests.functional.testcontroller
Run Code Online (Sandbox Code Playgroud)
什么是正确的语法?
当我尝试将外来字符插入数据库时,可能导致此错误的原因是什么?
>>UnicodeEncodeError: 'latin-1' codec can't encode character u'\u201c' in position 0: ordinal not in range(256)
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
谢谢!
我正在使用sqlalchemy编写Web应用程序.在网站未投入生产的第一阶段开发期间,一切顺利.我可以通过简单地删除旧的sqlite数据库并从头创建一个新数据库来轻松更改数据库模式.
现在该网站正在生产中,我需要保留数据,但我仍然希望通过轻松地将数据库转换为新模式来保持原始开发速度.
因此,假设我在修订版50中有model.py,在model.py中有修订版75,描述了数据库的模式.在这两个模式之间,大多数更改都是微不足道的,例如,使用默认值声明新列,我只想将此默认值添加到旧记录中.
最终,一些变化可能不是微不足道的,需要一些预先计算.
您如何(或将)如何处理快速变化的Web应用程序,例如,每天使用一个或两个新版本的生产代码?
顺便说一句,如果这有任何不同,该网站是用Pylons编写的.
我打算从Django搬到Pylons,但后来我遇到了金字塔.
Pylons和Pyramid有什么区别?
我在PylonsBook中读到了一些文本,目前它涵盖了Pylons 0.9.7,并想知道它是否是Pylons和Pyramid的开始.
我正在开发一个基于exisitng数据库的Pylons应用程序,所以我正在使用反射.我有一个SQL文件,其中包含我用来创建测试数据库的模式.这就是为什么我不能简单地使用drop_all和create_all.
我想写一些单元测试,我遇到了每次测试后清除数据库内容的问题.我只想删除所有数据,但保持表格完好无损.这可能吗?
该应用程序使用Postgres,这也是必须用于测试的内容.
我正在尝试使用SQLAlchemy进行Pylons,我喜欢它,只有一件事,是否可以在执行之前打印出从Table().create()生成的原始SQL CREATE TABLE数据?
哪个更快,python网页或php网页?
有谁知道pylons(或任何其他框架)的速度与用php制作的类似网站相比如何?
我知道通过cgi服务python基础网页比php慢,因为它每次都很长时间启动.
我喜欢使用挂架,如果它比php慢,我仍会使用它.但是如果挂架比php更快,我希望最终可以说服我的雇主允许我将网站转换为挂架.
我正在金字塔项目中工作,我在SQLAlchemy中使用声明性语法表
"""models.py"""
class Projects(Base):
__tablename__ = 'projects'
__table_args__ = {'autoload': True}
Run Code Online (Sandbox Code Playgroud)
我通过使用获得结果
""""views.py"""
session = DBSession()
row_data = session.query(Projects).filter_by(id=1).one()
Run Code Online (Sandbox Code Playgroud)
如何从此结果中获取列名称.
PS:我无法使用此方法,因为我使用的是声明性语法.
我正在使用RESTful API构建基于Pylons的Web应用程序,该API目前缺少任何身份验证.所以我要实现它,为了避免存储用户密码的所有麻烦和谨慎,我想使用OpenID进行身份验证.最好的方法是什么?这两件事是否兼容?是否存在使用OpenID的现有REST API,我可以从中获取灵感?
我试图从表中获取所有行.
在控制器我有:
meta.Session.query(User).all()
Run Code Online (Sandbox Code Playgroud)
结果是[, ],但我在这个表中有2行.
我在表中使用这个模型:
import hashlib
import sqlalchemy as sa
from sqlalchemy import orm
from allsun.model import meta
t_user = sa.Table("users",meta.metadata,autoload=True)
class Duplicat(Exception):
pass
class LoginExistsException(Exception):
pass
class EmailExistsException(Exception):
pass
Run Code Online (Sandbox Code Playgroud)
接下来,在同一个文件中:
class User(object):
def loginExists(self):
try:
meta.Session
.query(User)
.filter(User.login==self.login)
.one()
except orm.exc.NoResultFound:
pass
else:
raise LoginExistsException()
def emailExists(self):
try:
meta
.Session
.query(User)
.filter(User.email==self.email)
.one()
except orm.exc.NoResultFound:
pass
else:
raise EmailExistsException()
def save(self):
meta.Session.begin()
meta.Session.save(self)
try:
meta.Session.commit()
except sa.exc.IntegrityError:
raise Duplicat()
orm.mapper(User, t_user)
Run Code Online (Sandbox Code Playgroud)
........