样品数字档案馆系统快速搭建实操:从零到可用的完整步骤
前置环境准备
本系统基于Python实现,无需复杂数据库或服务器配置,仅需安装Python 3.10及以上版本。
1. 安装Python
Windows系统:打开命令提示符,执行命令:winget install Python.Python.3.11,安装时必须勾选「Add Python to PATH」选项。
Linux系统(Debian/Ubuntu):执行命令:sudo apt update && sudo apt install python3 python3-pip -y。
Mac系统:执行命令:brew install python@3.11,需提前安装Homebrew。
验证安装:执行python --version,若提示失败替换为python3 --version,显示3.10及以上版本即为成功。
项目搭建核心步骤
1. 创建项目目录
在任意路径新建文件夹,命名为sample_archive,后续所有命令必须在该目录下执行。
2. 安装依赖库

执行命令安装Web框架和数据库依赖:pip install streamlit(sqlite3为Python自带库,无需额外安装)。
3. 编写核心代码(app.py)
在sample_archive文件夹内新建名为app.py的文件,复制以下完整代码(直接粘贴即可,无需修改):
import streamlit as st
import sqlite3
from datetime import datetime
初始化SQLite数据库,自动创建样品表
def init_db():
conn = sqlite3.connect('sample_archive.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS samples
(id INTEGER PRIMARY KEY AUTOINCREMENT,
sample_name TEXT NOT NULL,
sample_type TEXT,
collect_date TEXT,
description TEXT,
create_time TEXT)''')
conn.commit()
conn.close()
新增样品函数
def add_sample(name, type_, date, desc):
conn = sqlite3.connect('sample_archive.db')
c = conn.cursor()
create_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
c.execute('INSERT INTO samples (sample_name, sample_type, collect_date, description, create_time) VALUES (?, ?, ?, ?, ?)',
(name, type_, date, desc, create_time))
conn.commit()
conn.close()
关键字查询样品函数
def search_samples(keyword):
conn = sqlite3.connect('sample_archive.db')
c = conn.cursor()
c.execute('SELECT FROM samples WHERE sample_name LIKE ? OR description LIKE ?',
(f'%{keyword}%', f'%{keyword}%'))
results = c.fetchall()
conn.close()
return results
页面配置
st.set_page_config(page_title='样品数字档案馆', layout='wide')
init_db()
页面标题
st.title('样品数字档案馆系统')
样品录入区域
st.header('样品录入')
sample_name = st.text_input('样品名称')
sample_type = st.text_input('样品类型(可选)')
collect_date = st.date_input('采集日期')
description = st.text_area('样品描述(可选)')
if st.button('提交录入'):
if sample_name.strip() == '':
st.error('样品名称为必填项,不能为空')
else:
add_sample(sample_name, sample_type, str(collect_date), description)
st.success('样品录入成功')
样品查询区域
st.header('样品查询')
search_key = st.text_input('输入关键字搜索样品(支持名称/描述)')
if st.button('执行查询'):
results = search_samples(search_key)
if results:
st.subheader('查询结果')
st.table([['ID', '样品名称', '类型', '采集日期', '描述', '创建时间']] +
[[r[0], r[1], r[2], r[3], r[4], r[5]] for r in results])
else:
st.info('未找到匹配的样品')
4. 启动系统
在命令提示符中切换到sample_archive目录,执行命令:streamlit run app.py。
执行后系统会自动启动本地服务,若未弹出浏览器,手动访问地址http://localhost:8501即可进入系统界面。
核心功能验证与简单扩展
1. 基础功能验证
① 样品录入:输入必填的样品名称,补充可选的类型、日期、描述,点击「提交录入」,提示成功后完成操作。
② 样品查询:在搜索框输入样品名称或描述中的关键字,点击「执行查询」,即可显示所有匹配的样品信息。
2. 自定义字段扩展
若需新增样品字段(如编号、来源),仅需修改init_db函数中的SQL语句,比如新增字段:sample_no TEXT,对应修改录入函数和录入表单即可,无需复杂配置。