java数组和数据库_如何将数组插入数据库?

Django有一个库,用于将所有数据库工作封装到Python类中,因此在必须做一些非常聪明的事情之前,您不必乱用原始SQL . 尽管Django是Web应用程序的框架,但您可以use the database ORM by itself .

Josh的模型在使用Django的Python中看起来像这样:

from django.db import models

class Dog(models.Model):

# Might want to look at storing birthday instead of age.

# If you track age, you probably need another field telling

# you when in the year age goes up by 1... and at that point,

# you're really storing a birthday.

name = models.CharField(max_length=64)

age = models.IntegerField()

genders = [

('M', 'Male'),

('F', 'Female'),

]

gender = models.CharField(max_length=1, choices=genders)

class Measurement(models.Model):

dog = models.ForeignKey(Dog, related_name="measurements")

paws = [

('FL', 'Front Left'),

('FR', 'Front Right'),

('RL', 'Rear Left'),

('RR', 'Rear Right'),

]

paw = models.CharField(max_length=2, choices=paws)

taken_at = models.DateTimeField(default=date, auto_now_add=True)

class Measurement_Point(models.Model):

measurement = models.ForeignKey(Measurement, related_name="data_points")

frame = models.IntegerField()

sensor_row = models.PositiveIntegerField()

sensor_col = models.PositiveIntegerField()

value = models.FloatField()

class Meta:

ordering = ['frame', 'sensor_row', 'sensor_col']

id 字段是自动创建的 .

然后你可以做以下事情:

dog = Dog()

dog.name = "Pochi"

dog.age = 3

dog.gender = 'M'

# dog.gender will return 'M', and dog.get_gender_display() will return 'Male'

dog.save()

# Or, written another way:

dog = Dog.objects.create(name="Fido", age=3, sex='M')

要进行测量:

measurement = dog.measurements.create(paw='FL')

for frame in range(248):

for row in range(255):

for col in range(63):

measurement.data_points.create(frame=frame, sensor_row=row,

sensor_col=col, value=myData[frame][row][col])

最后,获得一个框架:

# For the sake of argument, assuming the dogs have unique names.

# If not, you'll need some more fields in the Dog model to disambiguate.

dog = Dog.objects.get(name="Pochi", sex='M')

# For example, grab the latest measurement...

measurement = dog.measurements.all().order_by('-taken_at')[0]

# `theFrameNumber` has to be set somewhere...

theFrame = measurement.filter(frame=theFrameNumber).values_list('value')

注意:这将返回元组列表(例如 [(1.5,), (1.8,), ... ] ),因为 values_list() 可以一次检索多个字段 . 我想象一下将向量重映射到矩阵的函数's got a function similar to Matlab' s reshape .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值