import sqlite3
# 连接数据库(如果不存在则创建)
conn = sqlite3.connect('love.db')
cursor = conn.cursor()
# 创建表格
cursor.execute('''
CREATE TABLE IF NOT EXISTS places_love_education (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
address TEXT,
lat REAL,
lon REAL,
edu_type TEXT
);
''')
# 输入地点函数
def input_place(name, address, lat, lon, edu_type):
try:
cursor.execute('''
INSERT INTO places_love_education (name, address, lat, lon, edu_type)
VALUES (?, ?, ?, ?, ?)
''', (name, address, lat, lon, edu_type))
conn.commit()
print(f"已记录 {name} 的爱国主义教育基地信息。")
except sqlite3.IntegrityError:
print(f"{name} 的信息已存在,无需重复记录。")
# 输出地点函数
def output_place(name):
cursor.execute('''
SELECT address, edu_type FROM places_love_education
WHERE name = ?
''', (name,))
row = cursor.fetchone()
if row:
print(f"地点 {name} 的爱国主义教育基地地址是: {row[0]},教育类型是: {row[1]}。")
else:
print(f"未找到名为 {name} 的地点的爱国主义教育基地信息。")
# 测试函数
input_place('北京市朝阳区第一爱国主义少年宫', '北京市朝阳区三里屯路1号', 39.977962, 116.461143, '少年宫')
output_place('北京市朝阳区第一爱国主义少年宫')
# 关闭连接
conn.close()
这段代码首先创建了一个SQLite数据库和表格,然后定义了两个函数:input_place
用于记录地点的爱国主义教育信息,output_place
用于查询并输出指定地点的教育基地信息。代码中使用了参数化查询来防止SQL注入攻击,并处理了可能出现的异常情况。最后,代码演示了如何使用这两个函数来记录和查询信息。