11.7luffycity项目(2)
2018-11-7 18:53:17
等把项目做完再发完整代码和github连接
这里只整理笔记和新学的知识点!
1.url的两种写法
urls.py
from django.conf.urls import url,include from app01.views import course urlpatterns = [
# 方式一 这种方法需要用判断
# url(r'^course/$', course.CourseView.as_view()),
# url(r'^course/(?P<pk>\d+)/$', course.CourseView.as_view()), # 方式二 用了请求方式对应方法这个方式
url(r'^course/$', course.CourseView.as_view({'get': 'list'})), url(r'^course/(?P<pk>\d+)/$', course.CourseView.as_view({'get': 'retrieve'})), url(r'^test$', course.test),
]
在第二种传参数的写法,也就是请求方式对应方法名,这种写法类必须继承 ViewSetMixin,因为这个类重写了as_View方法,可以传参数
如下代码
from rest_framework.viewsets import ViewSetMixin, APIView class CourseView(ViewSetMixin, APIView):
pass
2.在 serializers序例化的时候,一对多和多对多的序例化方式不同
如下代码
from app01 import models
from rest_framework import serializers class CourseDetailSerializer(serializers.ModelSerializer):
"""
课程详细序列化
"""
# one2one/fk/choice
# 跨表取title
title = serializers.CharField(source='course.title')
img = serializers.CharField(source='course.course_img')
level = serializers.CharField(source='course.get_level_display') # m2m 自定义方法 返回所要数据
recommends = serializers.SerializerMethodField()
chapter = serializers.SerializerMethodField() class Meta:
model = models.CourseDetail
fields = ['course', 'title', 'img', 'level', 'slogon', 'why', 'recommends', 'chapter'] def get_recommends(self, obj):
# 获取推荐的所有课程
queryset = obj.recommend_courses.all()
return [{'id': row.id, 'title': row.title} for row in queryset] def get_chapter(self, obj):
# 获取推荐的所有课程
queryset = obj.course.chapter_set.all()
return [{'id': row.id, 'name': row.name} for row in queryset]
3. 关于在modes中choice字段如何获取后面的中文 需要用 get_字段名_display() 这个方法
例:
level_choices = (
(1,'初级'),
(2,'中级'),
(3,'高级'),
)
level = models.IntegerField(verbose_name='课程难易程度',choices=level_choices,default=1)
序例化代码
from app01 import models
from rest_framework import serializers
class CourseSerializer(serializers.ModelSerializer):
"""
课程序列化
"""
level = serializers.CharField(source='get_level_display') # 使用了 get_level_display class Meta:
model = models.Course
fields = ['id', 'title', 'course_img', 'level']
vue部分也没啥,等做完项目直接上传github
就这些知识点,附上笔记!
s9day105 内容回顾:
- restful 规范(10)
- django rest framework框架(10)
- 跨域
- 为什么会有跨域?
- 绕过浏览器同源策略就可以跨域。
- jsonp
动态创建script标签
同源策略会阻止ajax请求;不阻止具有src属性的标签
<script src='xxxx'></script>
- cors
设置响应头 今日内容:
- vue
- api 内容详细:
1. vue
- 课程列表
- 课程详细 - 任务:
- 课程表
id title course_img level(choices)
- 课程详细(one2one 课程 )
id why 推荐课程
- 章节
id name
- 功能:
a. 课程列表显示图片 b. 课程详细显示:
- 为什么要学习这个课程
- 所有推荐课程
- 所有章节 2. api
1. 查询所有的课程
http://127.0.0.1:8000/api/v1/course/
练习:level变中文 2. 查询课程详细
http://127.0.0.1:8000/api/v1/course/1/
- 路由 as_view 是否添加参数,取决于视图继承的类
- 序列化
- depth
- source
例:
title = serializers.CharField(source='course.title')
- 自定义method
例:
recommends = serializers.SerializerMethodField() def get_recommends(self, obj):
# 获取推荐的所有课程
queryset = obj.recommend_courses.all()
return [{'id': row.id, 'title': row.title} for row in queryset] 练习:显示该课程相关的所有章节 this补充:
题目1:
var name = '景女神' function Foo(name,age){
this.name = name;
this.age = age;
this.getName = function(){
console.log(this.name); # 文州 (function(){
console.log(this.name); # 女神
})() }
} obj = new Foo('文州',19)
obj.getName() 题目2:
var name = '景女神' function Foo(name,age){
this.name = name;
this.age = age;
this.getName = function(){
console.log(this.name); # 文州
var that = this
(function(){
console.log(that.name); # 文州
})() }
} obj = new Foo('文州',19) obj.getName() 题目3:
var name = '景女神'
obj = {
name:'文州',
age: 19,
getName:function(){
console.log(this.name); # 文州
var that = this
(function(){
console.log(that.name); # 文州
})()
}
}
obj.getName() 作业:
1. 前后端流程
2. 图片
3. CC视频账号
4. git相关
- 安装git软件
- 注册github账号
11.7luffycity项目(2)的更多相关文章
- django之创建第11个项目-页面整合
目的:将如下众多html页面整合到一个index.html页面中. 百度云盘:django之创建第11个项目-页面整合 用下面的方式实现: <!DOCTYPE html> <head ...
- Spring Boot → 11:项目实战-账单管理系统完整版
Spring Boot → 11:项目实战-账单管理系统完整版
- (PMP)第11章-----项目风险管理
11.1 规划风险管理 输入 工具与技术 输出 1.项目章程 2.项目管理计划 (所有组件) 3.项目文件 (相关方登记册) 4.事业环境因素 5.组织过程资产 1.专家判断 2.数据分析 (相关方分 ...
- jdk1.8换成11,启动项目报错java.net.MalformedURLException: unknown protocol: jrt
jdk11 Information:Internal caches are corrupted or have outdated format, forcing project rebuild: Mo ...
- python3.7环境下创建app,运行Django1.11版本项目报错SyntaxError: Generator expression must be parenthesized
咳咳!!! 今天用命令行创建django项目中的app应用,出现了这样一个错误 这个错误在python3.6版本下安装运行django 1.11版本正常运行,但python3.7版本下运行django ...
- 11、项目经理要阅读的书籍 - IT软件人员书籍系列文章
项目经理是负责软件项目的总体把控的角色.项目经理在项目中是一个管理者的角色,他需要对项目的9大领域进行学习,同时针对项目的范围.进度.沟通和风险进行处理,让项目能够按时保质保量的完成. 项目经理需要学 ...
- DDD实战11 在项目中使用JWT的token 进行授权验证
步骤: 1.首先要在webapi的管道中 使用认证(Authentication) 2.要在webapi的服务中注册验证条件 代码如下: namespace Dealer.WebApi { publi ...
- python3.7环境下创建app、运行Django1.11版本项目报错Generator expression must be parenthesized
有些同学喜欢追求新鲜感~但追求新鲜感终归是要付出一点点代价的 在编程领域有一句至理名言:用东西不要用最新的! 就像每次苹果系统的升级都会有相当一部分用户的手机成砖一样 下面我们就介绍一个因版本升级带来 ...
- 让android项目支持boost 支持c++11
在Application.mk 里增加-D__GLIBC__ 让项目支持boost 增加 -std=c++11 让项目支持c++11 (3.x的cocos本身已经支持了的) 看起来这样: APP_S ...
随机推荐
- Servlet(3)—Servlet
基本知识: java Servlet是和平台无关的服务端组件,它运行在Servlet容器中,Servlet容器负责Servlet和客户的通信以及调用Servlet方法,Servlet和客户的通信采用& ...
- Asp.NET WebApi+Redis实现单用户登录实战演练
一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理和 ...
- jQuery鼠标悬停3d菜单展开动画
效果体验:http://hovertree.com/texiao/jquery/93/ 竖直的主菜单贴着页面左侧,当光标移入菜单项时,以3D动画的方式弹出对应的二级菜单.采用jQuery和CSS3实现 ...
- Linux(CentOS)下,下载安装Nginx并配置
1.准备工作选首先安装这几个软件:GCC,PCRE(Perl Compatible Regular Expression),zlib,OpenSSL.Nginx是C写的,需要用GCC编译:Nginx的 ...
- 《Python数据分析与挖掘实战》读书笔记
大致扫了一遍,具体的代码基本都没看了,毕竟我还不懂python,并且在手机端的排版,这些代码没法看. 有收获,至少了解到以下几点: 一. Python的语法挺有意思的 有一些类似于JavaSc ...
- vue把localhost改成ip地址无法访问—解决方法
打开package.json文件,找到下面的代码 "scripts": { "dev": "webpack-dev-server --inline - ...
- linux go环境安装和基本项目结构
最近项目中要用到Go语言,所以简单总结一下安装和配置,Go这个语言本身就限定了很多规范,比如项目设置,编程风格等,开发中就不需要再因为各种规范问题纠结了,直接用官方规定的能避免很多坑,下面直接切正题, ...
- 重新认识 Delphi
一.彩蛋 1.打开 Delphi,选择"Help" –> "About-"菜单,出现 About 对话框. 2.在 About 窗口上按住 Alt 键盘, ...
- FutureTask类
FutureTask类是Future 的一个实现,并实现了Runnable. 所以可通过Executor(线程池)来运行,也可传递给Thread对象运行. 假设在主线程中须要运行比較耗时的操作时.但 ...
- ssh的用户配置文件config管理ssh会话
抄的这个: https://www.cnblogs.com/zhonghuasong/p/7236989.html 只是在这里留个存档,防止删除 我有这样的需求就是,因为需要ssh连接到服务器,然后每 ...