Scrapy中使用Django的Model访问数据库

Scrapy中使用Django的Model进行数据库访问

当已存在Django项目的时候,直接引入Django的Model来使用比较简单

# 使用以下语句添加Django项目的目录到path
import os
import sys
import django
# 当前项目的上级目录中的Django项目
sys.path.append('../django_spider')
# 设置Django环境变量
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_spider.settings'
# 启动Django
django.setup()

然后,下面就可以直接引入Model中的class,使用Django的ORM进行数据库访问了

如果不希望使用一个完整的Django项目来提供ORM支持,也可以使用下面的方法

# 项目目录结构
project/
	app/
		model.py
	migrations/
		init.py
	db_setting.py
	manage.py
1,manage.py
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "db_settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)
2,db_setting.py
import os
# 当前设置文件路径
BASE_DIR = os.path.dirname(__file__)

SECRET_KEY = 'at8j8i9%=+m@topzgjzvhs#64^0&qlr6m5yc(_&me%!@jp-7y+'

#添加APP
INSTALLED_APPS = (
    'app',
)

# Database,在setting文件的同级目录下创建sqllite文件
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
# MySQL配置
DATABASES = {
	'default':{
		'ENGINE'  :'django.db.backends.mysql',
		'NAME'    :'spider',  # 你的数据库名称
		'USER'    :'root',  # 你的数据库用户名
		'PASSWORD':'root',  # 你的数据库密码
		'HOST'    :'127.0.0.1',  # 你的数据库主机,留空默认为localhost
		'PORT'    :'3306',  # 你的数据库端口
	}
}
3,migrations/init.py

空文件

4,model.py
from django.db import models

# Create your models here.
class TableName(models.Model):
    name = models.CharField(max_length=100)

这里其实相当于一个简易的Django项目,只是用了里面的db模块

使用方法

import os
import django
os.environ['DJANGO_SETTINGS_MODULE'] = 'db_settings'
django.setup()
from app.models import TableName
posted @ 2017-06-03 16:39  jeferwang  阅读(835)  评论(0编辑  收藏  举报