如何停止此功能?即使循环以while
或if
语句结束,else
函数也会运行。
我尝试添加break
,但仍然无法正常工作。
def proallocate():
q = True
conn = sqlite3.connect('database.db')
cur = conn.cursor()
pid = cur.execute("SELECT project_id FROM Upload WHERE status= ?", ("NULL",))
while q:
for pd in pid:
a = str(pd)
projectid = re.sub('[\(\),\{\}<>]', '', a)
url = "localhost:8888/"+projectid+""
print(url)
req = requests.Session()
resp = req.get(url)
soup = BeautifulSoup(resp.text, 'html.parser')
project_status_latest = soup.find_all('tr')[-1].get_text()
if ("Project Ready" in project_status_latest):
proid[0] = projectid
q = False
break
else:
cur.execute("UPDATE Upload SET status = ? WHERE project_id = ?", ("Reserved", projectid))
conn.commit()
return projectid
预期结果是,它应该从if
语句返回一个值,或者不返回任何值。
答案 0 :(得分:0)
摆脱while
循环。 for
循环已经遍历了所有项目ID,您不需要另一个循环。如果for
循环找不到匹配的项目,则while
循环将无限重复。