web2py 按钮应该做不同的事情
web2py button should do different things
我是 web2py 和一般网站的新手。
我想上传 xml 个文件,其中包含不同数量的问题。
我正在使用 bs4 来解析上传的文件,然后我想做不同的事情:如果 xml 文件中只有一个问题,我想去一个新站点,如果里面有更多问题我想去另一个网站。
所以这是我的代码:
def import_file():
form = SQLFORM.factory(Field('file','upload', requires = IS_NOT_EMPTY(), uploadfolder = os.path.join(request.folder, 'uploads'), label='file:'))
if form.process().accepted:
soup = BeautifulSoup('file', 'html.parser')
questions = soup.find_all(lambda tag:tag.name == "question" and tag["type"] != "category")
# now I want to check the length of the list to redirect to the different URL's, but it doesn't work, len(questions) is 0.
if len(questions) == 1:
redirect(URL('import_questions'))
elif len(questions) > 1:
redirect(URL('checkboxes'))
return dict(form=form, message=T("Please upload the file"))
上传 xml 文件后,有人知道我可以做什么来检查列表的长度吗?
BeautifulSoup
需要字符串或类似文件的对象,但您传递的是 'file'
。相反,您应该使用:
with open(form.vars.file) as f:
soup = BeautifulSoup(f, 'html.parser')
但这不是 web2py 特有的问题。
希望对您有所帮助。
我是 web2py 和一般网站的新手。 我想上传 xml 个文件,其中包含不同数量的问题。 我正在使用 bs4 来解析上传的文件,然后我想做不同的事情:如果 xml 文件中只有一个问题,我想去一个新站点,如果里面有更多问题我想去另一个网站。 所以这是我的代码:
def import_file():
form = SQLFORM.factory(Field('file','upload', requires = IS_NOT_EMPTY(), uploadfolder = os.path.join(request.folder, 'uploads'), label='file:'))
if form.process().accepted:
soup = BeautifulSoup('file', 'html.parser')
questions = soup.find_all(lambda tag:tag.name == "question" and tag["type"] != "category")
# now I want to check the length of the list to redirect to the different URL's, but it doesn't work, len(questions) is 0.
if len(questions) == 1:
redirect(URL('import_questions'))
elif len(questions) > 1:
redirect(URL('checkboxes'))
return dict(form=form, message=T("Please upload the file"))
上传 xml 文件后,有人知道我可以做什么来检查列表的长度吗?
BeautifulSoup
需要字符串或类似文件的对象,但您传递的是 'file'
。相反,您应该使用:
with open(form.vars.file) as f:
soup = BeautifulSoup(f, 'html.parser')
但这不是 web2py 特有的问题。
希望对您有所帮助。