zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    cisco 4500X 交换机限速
    HPE 交换机基础配置
    MySQL数据库之主从复制
    MySQL复制线程状态转变
    MySQL数据库备份之mysqldump
    MySQL数据库之慢查询日志
    MySQL数据库之多线程备份工具mydumper
    MySQL数据库之索引
    MySQL之二进制日志
    MySQL数据库之sql_mode解释
  • 原文地址:https://www.cnblogs.com/wxjblog/p/6937709.html
Copyright © 2011-2022 走看看