我使用 HTML、CSS 和 JavaScript 构建了一个静态网站。现在,我想将其与使用 Python API 访问的 SQLite3 数据库集成。
2、解决方案
方案一:使用 XMLHttpRequest 调用 Python 脚本
我们可以使用 XMLHttpRequest (en.wikipedia.org/wiki/XMLHtt…) 调用 Python 脚本并将其结果放入网页中。
代码示例:
# Python 脚本
import sqlite3
# 创建一个连接
connection = sqlite3.connect('database.db')
# 创建一个游标
cursor = connection.cursor()
# 执行查询
cursor.execute('SELECT * FROM table')
# 获取查询结果
results = cursor.fetchall()
# 关闭连接
connection.close()
# 返回结果
print(results)
<!-- 网页 -->
<script>
// 创建一个 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
// 打开一个 POST 请求
xhr.open('POST', 'python_script.py', true);
// 设置请求头
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// 发送请求
xhr.send();
// 监听请求状态
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// 获取查询结果
var results = JSON.parse(xhr.responseText);
// 处理查询结果
for (var i = 0; i < results.length; i++) {
console.log(results[i]);
}
}
};
</script>
方案二:使用 Python 框架构建动态网站
如果我们的需求发生了变化,静态网站不再满足要求,我们可以使用 Python 框架构建一个动态网站。首先,我们需要选择一个合适的 Python 框架。如果原来静态网站已经足够,那么 Django 是一个很好的选择。接下来,我们需要为选择的框架定义数据库模式。在没有特殊原因的情况下,我们不需要使用 SQL 查询数据库。最后,我们可以将网站的静态内容用作模板,并用动态数据替换相应的位置。
方案三:使用 AJAX 调用 Python API
如果我们使用 JQuery,我们可以使用 AJAX 来调用 Python API。
代码示例:
# Python 脚本
import sqlite3
# 创建一个连接
connection = sqlite3.connect('database.db')
# 创建一个游标
cursor = connection.cursor()
# 执行查询
cursor.execute('SELECT * FROM table')
# 获取查询结果
results = cursor.fetchall()
# 关闭连接
connection.close()
# 返回结果
print(results)
// 网页
$.ajax({
type: "POST", // 或 GET
url: 'python_script.py',
data: dataToSend,
success: success, // 请求成功时的回调函数,包含 SQLite 数据
dataType: dataType
});
// 网页
xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", 'python_script.py', true);
xmlhttp.send();
// 监听请求状态
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
// 获取查询结果
var results = JSON.parse(xmlhttp.responseText);
// 处理查询结果
for (var i = 0; i < results.length; i++) {
console.log(results[i]);
}
}
};
无论选择哪种方案,我们都需要根据具体情况进行选择。