0

我正在尝试使用我尝试制作的 webpy 在我自己开发的博客中制作类别:

mywebpage.com/c/categorieName

是显示类别的输入(如别名?¿?)

 urls = (   
    '/c/(.*)','index'
)

那么索引类是:

class index(object):
    def GET(self,cat):
        seleccion = functions.categoria(db,cat)
        #seleccion = db.select('contenido',what="*",order="modificado DESC")
        #print seleccion
        return render.index(seleccion.getThread(),cat)

我有一个带有一些帮助功能的 .py 文档:

class categoria(object):
    def __init__(self,datab,nombre='frutas'):
        '''
        Selecciona y asigna una lista o diccionario
        con el contenido de la base de datos dispuesto en
        objetos de la clase noticias.
        '''
        self.datab = datab #objeto database
        self.nombre = nombre #cadena con el nombre de la categoria
        self.n = self.getCat() #calculo del numero de la categoria PROBLEMAS
        self.thread = self.getThread()       


    def getCat(self):
        ''' returns the categorie number stored in the database
        '''
        a = self.datab.select('categorias',where='catName = $nombre', vars=dict(nombre=self.nombre))
        return a[0].catId

    def getThread(self):
        myvars = dict(numero= '%'+str(self.n)+'%' )
        d = self.datab.query("SELECT * FROM contenido WHERE category LIKE $numero", vars= myvars)
        #what="contentTitle,content,'update'",
        return d

    # db.query("SELECT * FROM foo WHERE x = $x", vars=dict(x='f'), _test=False)

    def __str__(self):
        'some more code, doesn't matter'

我正确配置了 mysql 数据库并包含示例内容。我尝试使用该功能运行它,但我采取的最佳结果是为变量cat放置一个默认值,该值不允许我使用浏览器方向功能更改视图中的类别。

非常感谢你。

4

1 回答 1

1

也许问题出在seleccion.getThread调用结果上。

在 webpydb.query返回web.iterbetter中,您只能迭代一次。您可以尝试返回d.list()而不是d,它将转换web.iterbetterlist

UPD:也许我不明白你的问题,所以这是另一个尝试:

'/c/(.*)','index'映射意味着类别可以为空,因此您可以像这样在 GET 函数中设置默认值:def GET(self,cat=None):或者将映射更改为'/c/(.+)','index',使其不适用于'/c/'请求路径。

于 2013-04-05T08:40:33.677 回答