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
Scrapy中使用Django的Model访问数据库的更多相关文章
- django使用model创建数据库表使用的字段
Django通过model层不可以创建数据库,但可以创建数据库表,以下是创建表的字段以及表字段的参数.一.字段1.models.AutoField 自增列= int(11) 如果没有的话,默认会生成一 ...
- django -- 为model 指定数据库名
一.为model指定数据库名: django自己实现的ORM中.如果要指定一个model的表名是通过Meta类来实现的. from django.db import models # Create y ...
- Silverlight应用程序中调用WCF Ria Services访问数据库图片
WCF Ria Services(通常称为RIA服务),专门设计让Silverlight应用程序访问数据库,网上有关其示例应用都是基于简单的数据显示,其中MSDN网站上有详细的解决方案介绍,地址htt ...
- Django中的一些同步Model和数据库的命令
1 最简单而又令人兴奋的命令: manage.py syncdb 创建了指定app中的model相应的数据库表,假设是第一次使用此命令,会提示是否创建超级用户,输入username,Email和pas ...
- django 创建model(数据库表)失败
在models.py中创建数据库表 from django.db import models # Create your models here. class Book(models.Model) ...
- Django进阶Model篇—数据库操作(ORM)
一.数据库配置 django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见https://docs.d ...
- Django框架model实现数据库增删查改
1.创建Django工程 https://www.cnblogs.com/CK85/p/10159159.html 2.在model.py中配置生成表格的类对象. from django.db imp ...
- Pycharm中的Django项目连接mysql数据库
一.安装Pycharm和Django就不详细说了,自行百度 二.新建Django项目也不说了 三.配置Django连接到mysql 1.models.py写一个类,继承models.Model cla ...
- 64位系统 IIS中应用程序池设置导致 访问数据库错误
64 位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接.导致程序里面的数 ...
随机推荐
- Java 比较(==, equals, compareTo, compare)
在Java中,有 ==, equals(), compareTo(), compare() 等方法可以比较两个值或对象,比较容易混淆.画了个简单的思维导图总结一下 Java Compares 我经常记 ...
- Unity C# const与static readonly的区别与联系
using System; namespace Test { class MainClass { //懒人写法的单例 class Weapon { public static readonly Wea ...
- git的使用及常用命令(二)
一,把文件放在版本库中 执行 git add XXX文件名 在执行 git commit -m ‘提交注释' 查看状态 git status 如果没有改变文件,nothing to comment ...
- angular 实现导航ng-click切换
angular写的导航.自学angular已有一段时间. <!doctype html><html lang="en"><head> <m ...
- 简谈-Python的输入、输出、运算符、数据类型转换
输出: 格式化输出: 看到了 % 这样的操作符,这就是Python中格式化输出. 换行输出: 在输出的时候,如果有 \n 那么,此时 \n 后的内容会在另外一行显示 输入: 在python2.7当中, ...
- 03(3) 基于GMM-HMM的SR基础
1.GMM-HMM的训练 1)训练GSM-HMM (1)确定HMM拓扑结构 (2)初始化HMM模型参数 (3)在所有的utterances中计算所需的统计量 (4)使用公式更新模型参数 (5)不收敛, ...
- jquery easyui的datagrid在初始化的时候会请求两次URL?
我们项目前端用的是jquery easyui,刚开始使用datagrid加载列表初始化时总是请求两次URL,这让人非常不解,怎么总是请求两次呢?数据一多,加载速度明显变慢,通过查资料才知道原来是重复声 ...
- DirectFB 之 动画播放初步
在基于linux的嵌入式仿真平台开发中,终端的美观和可定制是一个重要的问题.单调的"白纸黑字"型表现方式可谓大煞风景.改造linux控制台使之美观可定制地展示开机信息和logo成为 ...
- 实体框架(Entity Framework)
实体框架(Entity Framework) 实体框架(Entity Framework)简介 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对 ...
- 浅论Javascript在汽车信号测试中的应用
起因 上周老板又给了我这个车辆工程毕业的码农一份工作: 要我写一个测试台架出来. 我先简单的分析了测试台架的几种典型的工况: 1.发送一个CAN信号,测试能否查到. 2.发送一个信号,是否能在规定时间 ...