You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python从不同电脑连接Django的SQLite数据库?

跨电脑访问Django SQLite数据库的实现方案

嘿,刚好碰到过类似的需求,咱们来一步步解决这个问题~

首先得明确:SQLite是单文件型数据库,不像MySQL那种客户端-服务器架构,所以跨电脑访问的核心是让其他设备能访问到你的Django项目里的.db数据库文件,然后用Python连接操作它。

第一步:共享SQLite数据库文件

先把存放db.sqlite3的目录通过网络共享出去,给其他电脑读写权限:

  • Windows:右键数据库所在文件夹 → 「共享」→ 设置共享权限,确保其他用户有「读写」权限(只给只读的话没法更新数据)
  • macOS/Linux:用Samba或者NFS工具共享目录,配置好权限规则,让其他电脑可以挂载这个共享目录

⚠️ 划重点:权限一定要给够,不然要么连不上,要么只能查不能改!

第二步:Python脚本连接数据库的两种方式

方式1:直接用Python内置的sqlite3库

这是最轻量化的方式,不需要依赖Django,适合简单的查询、更新操作:

import sqlite3

# 替换成你的共享文件路径:Windows用\\主机名\共享目录\db.sqlite3,Linux/macOS用挂载后的路径
db_path = r"\\YourPCName\DjangoDBFolder\db.sqlite3"

try:
    # 建立数据库连接
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()

    # 示例:查询数据
    cursor.execute("SELECT * FROM your_app_yourtable LIMIT 5;")
    for row in cursor.fetchall():
        print(row)

    # 示例:更新数据(记得提交事务!)
    cursor.execute("UPDATE your_app_yourtable SET name = ? WHERE id = ?;", ("新名称", 1))
    conn.commit()

except sqlite3.Error as e:
    print(f"操作出错啦:{e}")
finally:
    # 用完记得关闭连接
    if conn:
        conn.close()

方式2:复用Django ORM(推荐给熟悉Django的同学)

如果想直接用Django的模型来操作数据(不用写原生SQL),可以这么做:

  1. 把你的Django项目里的settings.py和对应app的models.py复制到其他电脑,或者用Git同步
  2. 修改settings.py里的数据库配置,把NAME改成共享文件的路径:
# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': r'\\YourPCName\DjangoDBFolder\db.sqlite3',  # 或者挂载后的路径
    }
}
  1. 在Python脚本里初始化Django环境,就能用ORM操作了:
import os
import django

# 设置Django配置模块路径
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '你的项目名.settings')
django.setup()

# 导入你的模型
from your_app.models import YourModel

# 示例:查询数据
users = YourModel.objects.filter(age__gt=18)
for user in users:
    print(user.name)

# 示例:更新数据
user = YourModel.objects.get(id=1)
user.age = 20
user.save()

必须注意的坑

  • 并发写风险:SQLite对多设备同时写的支持很差,多个电脑同时更新数据可能会锁表甚至损坏数据库,如果是多用户高频写的场景,建议换成PostgreSQL或者MySQL
  • 性能问题:通过网络共享文件访问SQLite的速度会比本地慢很多,大数据操作尤其明显
  • 备份!备份!备份!:网络共享的文件容易因为断网、误操作出问题,一定要定期备份db.sqlite3文件

内容的提问来源于stack exchange,提问作者Eva Zana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:03:26