SQLite是一种轻量级的关系型数据库,以其小巧的体积和高效的性能在嵌入式系统和Web应用中得到了广泛的应用。本文将通过几个实战案例,详细介绍SQLite在Web应用中的使用方法,帮助你轻松提升开发技...
SQLite是一种轻量级的关系型数据库,以其小巧的体积和高效的性能在嵌入式系统和Web应用中得到了广泛的应用。本文将通过几个实战案例,详细介绍SQLite在Web应用中的使用方法,帮助你轻松提升开发技能。
一个简单的用户管理系统需要实现用户注册、登录、信息修改等功能。
创建一个名为users的表,包含以下字段:
id:用户ID,主键,自增username:用户名,唯一password:密码email:邮箱created_at:创建时间CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, password TEXT NOT NULL, email TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);import sqlite3
def register(username, password, email): conn = sqlite3.connect('database.db') cursor = conn.cursor() cursor.execute("INSERT INTO users (username, password, email) VALUES (?, ?, ?)", (username, password, email)) conn.commit() conn.close()def login(username, password): conn = sqlite3.connect('database.db') cursor = conn.cursor() cursor.execute("SELECT * FROM users WHERE username=? AND password=?", (username, password)) user = cursor.fetchone() conn.close() return user一个简单的博客系统需要实现文章发布、评论、分类等功能。
创建三个表:articles、comments和categories。
articles:文章表,包含以下字段:
id:文章ID,主键,自增title:标题content:内容author:作者created_at:创建时间category_id:分类ID,外键comments:评论表,包含以下字段:
id:评论ID,主键,自增article_id:文章ID,外键content:评论内容author:作者created_at:创建时间categories:分类表,包含以下字段:
id:分类ID,主键,自增name:分类名称CREATE TABLE articles ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, content TEXT NOT NULL, author TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, category_id INTEGER, FOREIGN KEY (category_id) REFERENCES categories (id)
);
CREATE TABLE comments ( id INTEGER PRIMARY KEY AUTOINCREMENT, article_id INTEGER, content TEXT NOT NULL, author TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (article_id) REFERENCES articles (id)
);
CREATE TABLE categories ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL
);def publish_article(title, content, author, category_id): conn = sqlite3.connect('database.db') cursor = conn.cursor() cursor.execute("INSERT INTO articles (title, content, author, category_id) VALUES (?, ?, ?, ?)", (title, content, author, category_id)) conn.commit() conn.close()def comment(article_id, content, author): conn = sqlite3.connect('database.db') cursor = conn.cursor() cursor.execute("INSERT INTO comments (article_id, content, author) VALUES (?, ?, ?)", (article_id, content, author)) conn.commit() conn.close()通过以上两个实战案例,我们可以看到SQLite在Web应用中的强大功能。在实际开发中,你可以根据需求对数据库进行扩展和优化,例如添加索引、触发器等。希望这些案例能够帮助你提升SQLite开发技能。