每日测验
"""
今日考题:
1.choices参数的应用场景有哪些,如何获取该字段的值
2.django是什么模型的框架,简述MTV与MVC模型
3.多对多表关系有几种创建方式,各有什么特点?
4.什么是ajax,请手写出ajax的基本语法结构及重要参数含义
"""
昨日内容回顾
在django部分,如果你写代码的时候报错了
"""
1.pycharm窗口提示,前端console界面
2.仔细核对代码(单词写错写多)
3.浏览器缓存没有清除
4.端口号可能冲突了,一直跑的是之前的项目
5.重启你的计算机
(自己学会百度搜索问题,出现bug千万不要慌 要冷静分析 自己想出一个排查思路)
"""
-
图书管理系统图书的增删改查
""" 将你之前所学的知识点尽量全部都用上(每个人都应该自己能够独立的完成) """
-
choices参数
""" 在设计表的时候 针对可以列举完全的可能性字段 一般都是用choices参数 """ gender_choices = ((1,'male'),(2,'female'),(3,'others')) gender = models.IntegerField() # 针对具有choices参数的字段 存储数据的时候还是按照字段本身的数据类型存储没有其他的约束,但是如果你存的字段在你列举的范围内 那么可以自动获取对应关系 user_obj.gender # 数字 user_obj.get_gender_display() # 固定格式 get_choices参数字段名_display() """有对应关系就拿对应关系,没有则还是数据本身不会报错""" # 自己看看一些模型表的设计 体会choices参数的使用
-
MTV与MVC模型
""" django自称是MTV框架,但是它的本质其实还是MVC """
-
多对多三种创建方式
# 全自动(本地测试用这个比较方便) authors = models.ManyToManyField(to="Author") # 自动创建第三张关系表 扩展性差 add,remove,clear,set # 纯手动(基本不用) # 自己创建第三张表 自己建外键 # 扩展性高 但是无法利用orm简便的查询方法了 # 半自动(实际项目用这个,扩展性好) class Book(models.Model): authors = models.ManyToManyField(to="Author", through='Book2Author', through_fields=('book','author') ) class Author(models.Model): books = models.ManyToManyField(to="Author", through='Book2Author', through_fields=('author','book') ) class Book2Author(models.Model): book = 外键() author = 外键() """ 第三张关系表 还是需要你自己手动建 但是你可以告诉django orm可以使用orm简便查询方法 """
-
ajax
""" 异步提交 局部刷新 参考案例:github注册实时获取用户名发送给后端确认并动态展示校验结果(页面不刷新) 复习:input框实时监测事件 input事件 我们学的是jQuery版本的ajax,所以你必须要确保html页面已经提前加载了jQuery """ # ajax基本语法 $.ajax({ url:'', # 朝后端哪个地址发送 跟action三种书写方式一致 type:'get/post', # 提交方式 默认get 跟form表单method参数一致 data:{ 'username':'jason','password':123}, # 要发送的数据 success:function(args){ # 异步回调处理机制 } }) """ 当你在利用ajax进行前后端交互的时候 后端无论返回什么都只会被回调函数接受 而不再影响这个浏览器页面了 """ # 扩展 参数 代码发布项目还会涉及 dataType:'JSON'