VS Code Python终端执行CS50 SQL代码异常:输出Found无输入提示
CS50第7周SQLite代码运行问题解决方案
一、直接执行脚本仅输出「Found」无输入提示
- 确认运行目标脚本:检查终端执行命令中的文件名是否正确,避免同目录下同名旧脚本干扰输出。
- 激活虚拟环境:执行代码前先激活venv,命令为
.\venv\Scripts\activate,确保使用venv内的CS50模块配置。 - 重置终端:关闭当前VS Code终端,重新打开后再运行脚本,避免终端缓存残留导致异常输出。
二、移至tmp文件夹后SQLAlchemy URL解析错误
CS50的SQL类要求传入标准SQLite数据库URL,而非直接的本地文件路径。你需要给路径添加sqlite:///前缀:
修正后的数据库连接代码
# 保留原路径的转义反斜杠,添加sqlite:///前缀 db = SQL("sqlite:///C:\\Users\\wf user\\Desktop\\CODING\\CS50\\shows.db")
如果将shows.db也移至tmp文件夹,使用相对路径更简洁:
# 脚本与数据库文件同目录时的写法 db = SQL("sqlite:///shows.db")
额外优化建议
你的SQL语句使用LIKE ?时,当前只会匹配完全一致的标题。如果需要模糊匹配(比如包含输入关键词的标题),可以修改参数为带通配符的格式:
title = input("Title: ").strip() rows = db.execute("SELECT COUNT(*) AS counter FROM shows WHERE title LIKE ?", f"%{title}%")
内容的提问来源于stack exchange,提问作者Kira Jeewoo Choi
相关产品推荐
相关产品推荐

