django+python+操作数据库多表关联-增删改查-many-to-many-many-to-one

本文介绍了一个简单的Python ORM模型定义方法,并通过具体的例子展示了如何在模型中实现多对多关系以及一对多关系的数据操作。同时,还介绍了如何进行对象的创建、保存、查询和删除等基本操作。

class Author(models.Model):

manytomany   

 name=models.CharField(max_length=10)
    age=models.IntegerField(max_length=5
    sex=models.CharField(max_length=4)
class Book(models.Model):
    title =models.CharField(max_length=20)
    authors=models.ManyToManyField(Author)


 author=Author()

    book=Book()
    author.name='zhangsan'
    author.age=12
    author.sex='男'
    book.title='三国演义'
    book.save()
    author.save()
    author1=Author()
    author1.name='lisi'
    author1.age=32
    author1.sex='女'
    author1.save()


    book.authors.add(author)
    book.authors.add(author1)


    Author.objects.create(name='wangwu',age=33,sex='女')

many-to-one

class Person (models.Model):
    name=models.CharField(max_length=10)
    age=models.IntegerField(max_length=5)
class Books(models.Model):
    person=models.ForeignKey(Person,related_name='person_book')
    #pubtime=models.DateField()
    title=models.CharField(max_length=15)

def index(req):
   print '222'
   person1 =Person()
   person1.age=12
   person1.name='李四'
   person1.save()
   book1=Books()
   book1.title='三国演义'
   book1.person=person1
   book1.save()
   book2=Books()
   book2.title='三国演义'
   book2.person=person1
   book2.save()




取出对象:

  1. b = Book.objects.get(id=50)  
  2. b.authors.all()  
  3. b.authors.filter(first_name='Adam'
从作者出发获取书籍

  1. a = Author.objects.get(id=1)  
  2. a.book_set.all()  
删除对象

a = Author.objects.get(id=1)
b = Book.objects.get(id=50)
b.authors.remove(a) 或者 b.authors.filter(id=1).delete()


 

### 使用 Python Django 和 Vue 构建支持大数据的应用程序 #### 技术栈的选择与集成 为了构建高效的大数据应用程序,选择合适的技术栈至关重要。在此场景下,采用 MySQL 作为数据库,利用 B/S(浏览器/服务器)架构来搭建应用环境[^1]。后端选用 Django 框架处理业务逻辑并提供 RESTful API 接口给前端调用;而前端则基于 Vue.js 结合 Element UI 组件库实现交互界面的设计与开发[^2]。 #### 数据流设计 在这样的体系结构中,数据流动遵循如下模式:用户通过 Web 浏览器访问由 Vue 渲染的页面发起请求至部署有 Django 的服务器上,在这里完成诸如查询、存储等操作后再返回响应结果给客户端显示出来。对于涉及大量数据分析的任务,则可以在后台引入 Spark 或者 Hadoop 等分布式计算框架来进行批处理作业或者实时流式处理[^5]。 #### 实现步骤概述 - **模型定义**:使用 Django ORM 定义所需的数据结构,并确保能够良好映射到关系型数据库中的实体; - **API 创建**:编写视图函数负责接收来自前端的各种 HTTP 请求并将它们转换成相应的 CRUD 操作传递给对应的 Model 层去执行,同时也要准备好序列化类以便于 JSON 格式的传输; - **前后端分离**:借助 Axios 库或者其他 AJAX 解决方案让 Vue 可以异步地向服务端发送指令以及获取最新的状态更新; - **性能优化**:考虑到可能存在的高并发读写需求,应该采取措施如缓存机制(Cache)、分页加载(Pageination)等方式提高系统的整体吞吐量和响应速度。 - **大数据集的支持**:当面对海量级的信息时,除了依靠上述提到过的 MapReduce 计算方式外,还可以考虑将部分热点数据迁移到 NoSQL 存储引擎里边,比如 Redis 或 MongoDB 来减轻传统 SQL Server 的负担[^4]。 ```python from django.db import models class BigDataRecord(models.Model): timestamp = models.DateTimeField(auto_now_add=True) value = models.FloatField() def get_big_data_records(): from rest_framework.response import Response queryset = BigDataRecord.objects.all().order_by('-timestamp')[:100] serializer_class = BigDataSerializer(queryset, many=True) return Response(serializer.data) import axios from 'axios'; async function fetchBigData() { const response = await axios.get('/api/bigdata/'); console.log(response.data); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值