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)方式连接.导致程序里面的数 ...
随机推荐
- ReentrantLock 以及 AQS 实现原理
什么是可重入锁? ReentrantLock是可重入锁,什么是可重入锁呢?可重入锁就是当前持有该锁的线程能够多次获取该锁,无需等待.可重入锁是如何实现的呢?这要从ReentrantLock ...
- 用C写一个web服务器(三) Linux下用GCC进行项目编译
.container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...
- webapp 1px显示两倍的问题
公司最近换新首页,按照设计师的要求<大家都在逛>的分割线要1个像素. .span-3{ width:33.3333%; &:not(:first-child){ &:bef ...
- 过滤器Filter(17/4/8)
1:是JavaWeb三大组件之一: Servlet.Lisener(2个感知监听器不需要配置).Filter 2:过滤器 它会在一组资源(jsp.servlet.css.html等等)的前面执行! 它 ...
- 《Effective C#》读书笔记-1.C# 语言习惯-1.使用属性而不是可访问的数据成员
思维导图: 大纲: 1.使用属性而不是可访问的数据成员 属性 指定不同的访问权限 隐式属性降低了声明属性的工作量 允许将数据成员作为公共接口的一部分暴露 ...
- eclipse中AndroidA工程依赖B工程设置
假设library为B工程,而SlideMenuTest为A工程,且SlideMenuTest需要依赖library工程(减少jar包形式的修改麻烦). 需要简单的设置即可. 1.B工程设置为libr ...
- Mahout源码分析:并行化FP-Growth算法
FP-Growth是一种常被用来进行关联分析,挖掘频繁项的算法.与Aprior算法相比,FP-Growth算法采用前缀树的形式来表征数据,减少了扫描事务数据库的次数,通过递归地生成条件FP-tree来 ...
- Java多线程中的单例模式
一.在多线程环境下创建单例 方式一: package com.ietree.multithread.sync; public class Singletion { private static cla ...
- Android WebView导入HTML使Js生效的方法
WebSettings ws = webview.getSettings(); ws.setJavaScriptEnabled(true);//加上这句 webview.loadDataWithBas ...
- Volley使用指南
1.什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(A ...