Django与scrapy结合,sqlite3.connect() windows数据库路径问题

方法一:

绝对路径

self.conn = sqlite3.connect('G:\python工程\mysite\db.sqlite3')

这是最懒省事的方法

方法二:

相对路径

这种不行(linux下的方式):

self.conn = sqlite3.connect('../mysite/db.sqlite3')

或许这种:

self.conn = sqlite3.connect('..\mysite\db.sqlite3')

是的,它可以。

猜测:这说明,python的解释器还是不够强,因为很多情况下,windows处理路径问题时默认  '\'  等价于  '/'

 

我是在做scrapy向Django中的sqlite数据库写数据时遇到的这个问题,找不到数据库文件

一开始我是这样写的,多了两个  ..\  ,因为我觉得要以pipelines.py文件所在目录为当前目录,其实是以工程目录为当前目录,后来想了一下,命令都是在工程目录下运行的,当然它就是当前目录了,因为最后执行操作的是系统程序程序是在工程目录下运行的,当然它就是当前目录

    def open_spider(self, spider):
        self.conn = sqlite3.connect('..\..\..\mysite\db.sqlite3')   # 连接到数据库文件
        self.cur = self.conn.cursor()       # 游标

遇到相同问题的小伙伴可以参考一下,

不一定要使用scrapy_djangoitem这个框架,毕竟是别人写好的东西

 

你可能感兴趣的:(python,Django与scrapy结合,数据库路径问题)