Django项目美多商城总结第一天

一:配置(域名和模型类)

 

 

1.使用GenericAPIView+5个ModelMixin的原因:

list

create

retrieve

update

destroy

简化代码:操作不同的模型类时,序列化器与查询集不同,其它代码都相同

提供了属性:

queryset=

serializer_class=

 

  1. 视图类的总结:
    1. APIView:所有代码都需要自己写
    2. GenericAPIView+***ModelMixin:指定查询集和序列化器就行(需要定义两个类)
    3. ModelViewSet:指定查询集和序列化器(只需要定义一个类)

 

  1. DefaultRouter:默认路由规则

配置两条路由规则,一条不带主键,一条带主键

1.router=DefaultRouter()

2.router.register(地址前缀,views.***ViewSet)====>注册生成路由规则

3.urlpatterns+=router.urls

 

  1. 域名的配置
    1. 在etc文件夹下有个文件hosts,进入:sudu vim /etc/hosts

在文件末尾把127.0.0.1替换成网站的域名:127.0.0.1 www.meiduo.site

            127.0.0.1 api.meiduo.site

    1. 在项目文件dev.py中配置ALLOWED_HOSTS=[api.meiduo.site],以后就可以通过这个域名来访问这个Django后端地址

 

  1. 跨域:当前端输入www.meiduo.site时,浏览器会向后端live-server发起一段请求,请求前端文件,然后Ajax请求会向后端Django服务器发送一段请求,请求后端文件,当发起的的get请求时,Django服务器接收到请求,但是不会返回结果,Ajax发送post,put,delete请求之前,会先发送一个options请求的试探,试探这个资源允不允许操作,如果这个options返回一个200OK的话,Ajax再继续发起post,put,delete请求。如果返回的不是200比如是404,就是代表不被允许操作后台,就不会发起请求。这就是跨域过程中js所做的事,js通过Ajax请求后台才会有跨域,才会有这些验证。跨域就是某个域名下的JS通过Ajax请求去请求了另外一个域名下的地址。我们服务器默认是拒绝客户端请求的,如果想要允许请求需要在定义视图的时候写一个options的函数来返回200OK。但是每次都需要自己写就很麻烦,所以我们就借助一个第三方的包叫做CORS(作用就是帮助我们去响应options请求)。

总结什么是跨域:一个域名A下的js通过Ajax请求另外一个域名下的地址,这就是跨域。

 

  1. CORS
    1. 参考文档https://github.com/ottoy
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值