先来说一下跨域问题。

可以利用script标签实现跨域:

在demo1中:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
</head>
<body>
<button id = "btn">点我给后端发请求</button>
</body>
<script>
$('#btn').click(function () {let script_ele = document.createElement('script');script_ele.src = 'http://127.0.0.1:8000/test?callback=handlerResponse';document.body.insertBefore(script_ele,document.body.firstChild)
});function handlerResponse(data) {alert(data)}
</script>
</html>

在demo2中:

这是利用script标签进行跨域,这种方式是jsonp,但是jsonp这种方式不能发送post请求,而且比较繁琐。然后我们利用发送ajax请求跨域。

demo1:

demo2:

这时候访问时,会报错,因为不让我们跨域:

这时候我们写一个中间件:

要记得把这个中间件在settings中添加进MIDDLEWARE。

这时候就可以访问了。

content-type

当我们建的model中,会有很多表,在某一张表中可能会和其他表进行关联foreignkey,这一张表里会有很多foreignkey,这样写就会很麻烦,

这样写就会和其他表关联起来。Django中会有一个content-type表里面存放的是相应app和model的名字。举个例子:

from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation# Create your models here.
class Dianqi(models.Model):name=models.CharField(max_length=32)price=models.IntegerField(default=100)  # 不会生成字段,只用于反向查询coupons=GenericRelation(to="Coupon")def __str__(self):return self.name'''id  name1   格力空调2   海尔冰箱'''class Food(models.Model):name = models.CharField(max_length=32)price = models.IntegerField(default=100)class Coupon(models.Model):"""id    name             dianqi         food1   格力空调               1           null"""name = models.CharField(max_length=32)# 第一步 先生成ForeignKey字段 关联ContentTypecontent_type = models.ForeignKey(to=ContentType)# 第二步 生成一个IntergerField 字段关联object_id = models.PositiveIntegerField()# 第三步 生成一个GenericForeignKey 把上面两个字段注册进去content_object = GenericForeignKey("content_type", "object_id")def __str__(self):return self.name

食物和电器都会有优惠券,

我们查询的时候怎么查询呢?

    # 生成优惠券# coupon=Coupon.objects.create(name="格力空调满减券",content_type_id=10,object_id=1)# coupon=Coupon.objects.create(name="格力空调立减券",content_type_id=10,object_id=1)# 查询# 1 查询格力空调立减券对应商品的原价格
coupon=Coupon.objects.get(name="格力空调立减券")print(coupon.content_type.model_class())print(coupon.content_type.model_class().objects.filter(pk=coupon.object_id)[0].price)print(coupon.content_object.price)# 2 查询格力空调所有商品的优惠券
geli=Dianqi.objects.get(name="格力空调")print(geli.coupons.all())

转载于:https://www.cnblogs.com/yb635238477/p/9700552.html

跨域、ContentType组件相关推荐

  1. 用Dojo实现Ajax请求:XH“.NET研究”R、跨域、及其他

    在任何浏览器上方便地实现Ajax请求是每一个Ajax框架的初衷.Dojo在这方面无疑提供了非常丰富的支持.除了XMLHttpRequest之外,动态script.iframe.RPC也应有尽有,并且接 ...

  2. koa2 mysql项目教程_koa2教程【mysql,路由,跨域,静态服务】

    做人有原则,就什么都不怕 没有受过伤的人,才会讥笑别人身上的伤痕! ---<罗密欧与朱丽叶> 本文主要讲koa项目的建立,数据库连接配置,静态资源服务,路由管理.读完3分钟,也可做练手的教 ...

  3. 前端每周清单第 36 期:深入 Vue 2.5 类型增强、Puppeteer 端到端测试、PayPal 跨域套装...

    前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点:分为新闻热点.开发教程.工程实践.深度阅读.开源项目.巅峰人生等栏目.欢迎关注[前端之巅]微信公众号(ID:front ...

  4. python全栈开发103_python全栈开发day103-python垃圾回收机制、mro和c3算法解析、跨域jsonp\CORS、Content-Type组件...

    Python垃圾回收 -- 引用计数 -- Python为每个对象维护一个引用计数 -- 当引用计数为0的 代表这个对象为垃圾 -- 标记清除 -- 解决孤立的循环引用 -- 标记根节点和可达对象 - ...

  5. 12月12日学习内容整理:Ajax中的contentType参数,csrf跨域请求处理,serialize方法...

    一.contentType参数 1.用来标识请求的数据格式 2.默认值: "application/x-www-form-urlencoded"   代表是urlencoded编码 ...

  6. React路由---react-router-dom、获取路由参数、ant design ui组件、fetch发送请求(默认不能跨域)、Switch...

    1.下载 yarn add react-router-dom --save 2.导入 import React from "react"; import { BrowserRout ...

  7. Vue调用后端接口http ajax请求组件封装及proxyTable跨域问题解决超详细案例

    前端调用后端接口,使用axios,因为v-resource组件官方已不再维护了: res形参封装了整个响应结果: Vue提供的proxyTable组件用于解决跨域问题:(服务器与服务器之间的相互请求不 ...

  8. Request header field Content-Type is not allowed by Access-Control-Allow-Headers跨域

    跨域错误提示: XMLHttpRequest cannot load http://xxx.com. Request header field Content-Type is not allowed ...

  9. ie浏览器跨域报错问题;Access-Control-Allow-Headers 列表不存在请求表头 content-type;XMLHTTPRequest:网络错误 0x80070005,拒绝访问。

    问题: 这段是我在main.js下设置的,为了在请求头上添加后端需要的参数sessionId 和xrequestedwith ,在谷歌下是正常的, ie报Access-Control-Allow-He ...

最新文章

  1. ImageNet时代将终结?何恺明新作:Rethinking ImageNet Pre-training
  2. 用Enterprise Architect从源码自动生成类图
  3. 使用ToughMySQL为ToughRADIUS系统提供数据存储
  4. C++实现对汉字的完美支持
  5. jq绑定的事件不生效
  6. python二维列表切片,python – 切片多维列表
  7. matlab 判断整除函数_判断素数函数
  8. TensorFlow 学习(八)—— 梯度计算(gradient computation)
  9. 回溯法 - 递归 - n皇后问题 - 所有解
  10. OLAP工具在企业决策支持系统中的应用
  11. iptables 分析
  12. 离散实验五 判断关系R 是否为等价关系(给定 R 的关系矩阵,据此判断所给关系 R 是否为等价关系)
  13. 理解JPEG图像压缩算法,DCT变换
  14. 统计学知识大梳理(附框架图公式)
  15. 2022-2027年中国煤矿安全设备行业市场全景评估及发展战略研究报告
  16. 南宁发展重点向南 五象湖标志性建筑“五象塔”落成
  17. 关于Ubuntu18.04 Cisco AnyConnect闪退的问题
  18. 百度搜索资源平台链接提交通道
  19. matlab中读文件的行数_【Matlab】 读取文件各种方法
  20. Frontal Brain Lobe and Its Function额叶及其功能

热门文章

  1. JVM - 内存管理
  2. start_requests
  3. Mysql的性能优化
  4. Linux中搭建Maven私服
  5. springboot多数据源动态切换和自定义mybatis分页插件
  6. 大龄屌丝自学笔记--Java零基础到菜鸟--001
  7. android ui篇
  8. php图片滑动代码,jQuery如何实现图片滑动效果
  9. mybatis 配置
  10. JSSE访问带有未验证证书的HTTPS