django数据写入到数据库

本文介绍了在Django框架下如何将模型映射到数据库表,通过models.py定义表结构,使用命令进行数据库迁移,以及在views.py中操作视图向数据库插入数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在django中,一个类对应一个表。

定义表名:

 

setting.py 中的DATABASES设置数据库的选用'ENGINE':'django.db.backends.mysql',
名字'NAME':'',
账号'USER':'',
密码'PASSWORD':'',
数据库的的服务器IP 'HOST':'mysql.。。。.com',
端口'PORT':'7150',端口号也是一个字符串,默认是3306,远程会为了安全会进行更改。
models里是用class进行创建的,一个类一个表。

 2.所有的数据库的操作都在APP下的models.py文件中在model.py文件中创建模型:

from _future_ import unicode-literals
from django.db import models   

class PosModel(models.Model):          models.Model继承models里的Model类,Model类是一个父类,本身基类是没有的。
	 username = models.CharField(max_length=16,null=False)     定义了一个字段类型,名字叫username,最大长度为16,不能为空。
	password = models.CharField(max_length=32,null=False)
	age = models.IntegerField(null=True)
	还会默认创建一个名为id的字段

3.通过命令来迁移到数据库:

python manage.py makemigrations        创建映射文件
python manage.py migrate          将映射文件传入数据库

 4.向数据库插入数据

 

在视图views.py文件里导入模型:

 

from django.http inport HttpResponse 
from models import PosModel

def index(request):
	posModel = PosModel(username='',password='',age='')
	posModel.save()        写入数据库
	posModel = PosModel.object.get(id=1)      从数据库取出数据。
	username = posModel.username       
	password = posModel.password
	age = posModel.age
    return HttpResponse('%s\n%s\n%s' %(username,password,age))

 在数据库中添加新的APP模型:

 

在admin.py文件中添加这样的命令:

 

from django.contrib import admin         从django.contrib这个模块中引入后台admin
	from .models import PosModel    从当前目录的models.py文件中引入PosModel这个模型

	admin.site.register(PosModel)     后台.分区.注册(PosModel模型)

 

 

 

 

 

 

 

### 将Scrapy爬取的数据保存到Django连接的数据库 为了将Scrapy爬取的数据存储到Django项目中的数据库,可以按照以下方式操作: #### 1. 配置Django环境 在Django项目的`settings.py`文件中完成应用注册和数据库配置。以下是典型的设置示例[^2]: ```python INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'novel_test', # 注册你的应用 ] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'novel_test', 'USER': 'root', 'PASSWORD': '123456', 'HOST': 'localhost', 'PORT': 3306, } } ``` #### 2. 安装必要的依赖包 确保安装了支持Django与Scrapy交互的库 `scrapy-djangoitem` 和其他可能需要的库[^3]: ```bash pip install scrapy-djangoitem ``` #### 3. 创建Django模型 在Django应用中定义数据表结构。例如,在`models.py`中创建如下模型: ```python from django.db import models class ABCkg(models.Model): title = models.CharField(max_length=255) url = models.URLField() content = models.TextField() def __str__(self): return self.title ``` 执行迁移命令以生成对应的数据库表: ```bash python manage.py makemigrations python manage.py migrate ``` #### 4. 定义Scrapy Item 在Scrapy项目的`items.py`文件中,继承`DjangoItem`并将Django模型注入其中: ```python import scrapy from scrapy_djangoitem import DjangoItem from novel_test.models import ABCkg # 替换为实际的应用名 class AbckgItem(DjangoItem): django_model = ABCkg ``` #### 5. 自定义Pipelines处理逻辑 修改Scrapy项目的`pipelines.py`文件,编写自定义管道来保存数据Django数据库[^4]: ```python from novel_test.models import ABCkg # 替换为实际的应用名 class SaveToDatabasePipeline: def process_item(self, item, spider): obj = ABCkg.objects.create( title=item.get('title'), url=item.get('url'), content=item.get('content') ) return item ``` 在`settings.py`中启用该管道: ```python ITEM_PIPELINES = { 'your_project.pipelines.SaveToDatabasePipeline': 300, # 替换为实际路径 } ``` #### 6. 解决常见问题 如果遇到导入错误或其他兼容性问题,可以根据提示安装特定版本的依赖项[^5]: ```bash pip install pyopenssl==22.0.0 pip install cryptography==38.0.4 ``` --- ### 总结 通过以上步骤,能够成功将Scrapy爬取的数据存储至Django项目所连接的数据库中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值