当前位置: 首页 > news >正文

重庆免费做网站河南招标信息网

重庆免费做网站,河南招标信息网,华秋商城官网,百度h5游戏模型层补充 MTV与MVC模型 MTV 全称 Models Templates Views 模型模板视图 MVC 全称 Models Views Controller 模型视图控制MTV: Django号称是MTV模型 MVC: 其实django本质也是MVC 拓展: vue框架:MVVM模型choices参数(数据库字段设计常见) choices使用 class User(models.Mod…模型层补充 MTV与MVC模型 MTV 全称 Models Templates Views 模型模板视图 MVC 全称 Models Views Controller 模型视图控制MTV: Django号称是MTV模型 MVC: 其实django本质也是MVC 拓展: vue框架:MVVM模型choices参数(数据库字段设计常见) choices使用 class User(models.Model):username models.CharField(max_length32)age models.IntegerField()作用: 针对可以被预测到结果的字段对应的数据, 那么可以为该字段定制choices参数, 取数据的时候就可以通过对象.get_设置choices的字段_display()获取到定制的数据.例如: 性别 学历 工作经验 是否结婚 是否生子 客户来源等等. 针对某个可以列举完全的可能性字段我们用choices存储.使用: 1. 为即将创建的字段定制choices参数. 参数是一个二元组的形式 ((), ()). 元组中第一个参数要满足存储字段的约束条件2. 存: 指定对设置了choices的字段存数据数据存得时候没有列举出来的数字也能存. 范围还是按照字段类型决定3. 取: 指定对设置了choices的字段取数据. 方法: 对象.get_设置choices的字段_display()如果取得时候如果没有对应关系 那么字段是什么还是展示什么# 性别gender_choices ((0, 女),(1, 男),(2, 其他),)gender models.IntegerField(choicesgender_choices)# 成绩score_choices ((A, 优秀),(B, 良好),(C, 及格),(D, 不合格),)# 保证字段类型跟列举出来的元祖第一个数据类型一致即可score models.CharField(choicesscore_choices, nullTrue)user_obj1 models.User.objects.create(usernamejason, age18, gender1) models.User.objects.create(usernameegon, age85, gender2) models.User.objects.create(usernametank, age40, gender3) # 存: 存的时候 没有列举出来的数字也能存范围还是按照字段类型决定 user_obj4 models.User.objects.create(usernametony, age45, gender4)# 取: 只要是choices参数的字段 如果你想要获取对应信息 固定写法 get_字段名_display() print(user_obj1.get_gender_display()) # 男 print(user_obj4.get_gender_display()) # 4 (如果没有对应关系 那么字段是什么还是展示什么) 多对多三种创建方式 1. 全自动 优点: 1. 第三张表以及对应的外键关联字段不需要书写.2. 可以使用ORM提供的多对多关系表之间的增删改查清空方法remove,add,set,clear和正反向双下划线查询 缺点: 可扩展性极差. 无法对ORM自动生成的第三种虚拟中间表进行增添字段的操作 class Book(models.Model):name models.CharField(max_length32)book models.ManyToManyField(toAuthor)class Author(models.Model):name models.CharField(max_length32) 2. 纯手动 优点: 可扩展性强: 第三张表完全取决于自己 缺点: 需要书写的代码量大. 并且ORM提供的多对多关系的增删改查清空方法, 以及正反向双下划线查询都不支持一律都不能使用.class Book(models.Model):name models.CharField(max_length32)class Author(models.Model):name models.CharField(max_length32)class Book2Author(models.Model):book models.ForeignKey(toBook) author models.ForeignKey(toAuthor) 3. 半自动 优点: 既可以对第三张表进行格外增添字段的操作, 又能使用ORM提供的正反向双下划线查询 缺点: 不能使用ORM提供的多对多表关系增删改清空方法. add, set, remove, clearManyToManyField中参数指定介绍: to: 需要建立多对多外键关系的表. 本来需要指定to_field, 但是默认关联的就是被关联表的主键, 因此不需要指定.through: 建立多对多关系的第三张表through_fields: 指定元组形式注意: 参数的指定有顺序判断顺序指定的本质: 通过第三张表反向查对应建立多对多外键关联的表需要用到的哪个字段 哪个字段就放在前面简化: 谁是建立多对多外键关联的表, 就把对应的关联字段放前面 class Book(models.Model):name models.CharField(max_length32)authors models.ManyToManyField(toAuthor,throughBook2Author,through_fields(book, author))class Author(models.Model):name models.CharField(max_length32)# books models.ManyToManyField(# toBook,# throughBook2Author,# through_fields(author, book))class Book2Author(models.Model):book models.ForeignKey(toBook)author models.ForeignKey(toAuthor) Ajax Ajax简介 1. 简介 AJAX 全称 Asynchronous JavaScript and XML 异步JavaScript和XML 特点是: 异步提交. 局部刷新 例如: github注册页面动态获取用户名实时的跟后端确认并实时展示的前端(局部刷新) 1. AJAX 不是新的编程语言而是一种使用现有标准的新方法(比较装饰器) 2. AJAX 最大的优点是在不重新加载整个页面的情况下可以与服务器交换数据并更新部分网页内容。这一特点给用户的感受是在不知不觉中完成请求和响应过程 3. 注意: Ajax我们只争对jQuery封装之后的版本(原生的复杂并且在实际项目中也一般不用) 补充: 并不只有jQuery能够实现ajax其他的框架也可以 但是换汤不换药 原理是一样的2. 前端朝后端发送请求的方式 1. 浏览器地址栏直接输入url回车 GET请求 2. a标签href属性 GET请求 3. form表单(:submit 和 button) GET请求/POST请求 4. ajax GET请求/POST请求Ajax常见应用情景 # 需求1. 页面上有三个input框 2. 在前两个框中输入数字 点击按钮 朝后端发送ajax请求 3. 后端计算出结果 再返回给前端动态展示的到第三个input框中 强调: 整个过程页面不准有刷新,也不能在前端计算1. 前端: templates下的ab_ajax.html body input typetext idd1 input typetext idd2 input typetext idd3 pbutton classbtn btn-success btn-xs点我/button /pscript$(.btn).click(function () {// 1. 朝后端发送ajax请求$.ajax({// 2.指定朝哪个后端发送ajax请求url: , // 不写就是朝当前地址提交// 2.请求方式type: post, // 不指定默认就是get 都是小写// 3.数据data: {d1: $(#d1).val(), d2: $(#d2).val()},// 4.自动将接收到后端的string类型的json格式, 反序列化转换成对象. 如果后端指定使用JsonResponse返回数据. 那么就无需指定.{#dataType: json,#}// 5.回调函数:当后端给你返回结果的时候会自动触发 args接受后端的返回结果success: function (args) {// 6. 通过DOM操作动态渲染到第三个input里面$(#d3).val(args);console.log(typeof args);},})}) /script /body 2. 后端: views.py # 提示: 因为ajax指定的是post提交方式, 我们需要到settings.py中注释掉MIDDLEWARE中的csrf那一行. 如果没有注释前端将会出现如下异常: Failed to load resource: the server responded with a status of 403 (Forbidden)加载资源失败:服务器响应状态为403(禁止) def ab_ajax(request):if request.method POST:# 1. 使用HttpResponse返回数据. 实现后端计算出结果 再返回给前端动态展示的到第三个input框中d1 request.POST.get(d1)d2 request.POST.get(d2)sum int(d1) int(d2)return HttpResponse(sum)# 2. 使用HttpResponse返回数据. 传字典格式需要使用jason序列化. ajax中指定dataType:json设置自动反序列化. 如果前端页面手动指定反序列化需要使用JSON.parse. 如果没有指定是string类型, 而不是一个对象.import jsonusername {username: jason, password: 123}return HttpResponse(json.dumps(username))# 3. 使用JsonResponse返回数据. 前端无需反序列化. 可以直接拿到数据对象from django.http import JsonResponseusername {username: jason, password: 123}return JsonResponse(username)return render(request, ab_ajax.html)
http://www.hkea.cn/news/14446926/

相关文章:

  • 个人网站域名取名个人网站的基本风格有哪些
  • 做网站要学哪些代码凡客之家推广平台
  • wordpress 仿小米主题下载什么是seo推广
  • 我的家乡网站建设模板下载网页布局是指什么
  • 网站建设全程揭秘专门做杂志的网站有哪些
  • 职友集一家做公司点评的网站牡丹江网站开发
  • 长沙网站建设网站专业做图片制作网站有哪些
  • 如何做网站的下载的二维码北京网站排名
  • 怎么修改网站默认首页wordpress位置
  • 网站入口首页动漫wordpress主题
  • 建设企业网站需要注意的问题搭建个人视频网站
  • 网站制作过程合理步骤是什么网站开发验收过程
  • 大安网站建设公司装修预算表
  • 建设网站哪家好温州 网站优化
  • 互联网公司怎么找网站建设客户wordpress 坏图片
  • 哈巴狗模式网站开发wordpress邮件失败
  • 买的虚拟主机怎么做网站网站站群管理系统
  • 微企点建站平台介绍北京网站制作很好 乐云践新
  • 计算机网站开发是那个语言百度seo wordpress插件
  • 专业网站制作团队专业网站制作团队郑州做网站天强科技
  • 网站建设建站流程方案做网站要求什么
  • iis新建网站无法浏览域名解析 别人网站
  • 北京网站设计策划公司导航类网站怎么做
  • 桐庐县网站建设WordPress登录不进
  • 北湖区网站建设办公楼网络组建方案设计
  • 做网站除了dw一份完整的网站策划方案
  • 海口网站建设哪家最好徐州金网网站建设
  • 自己做一网站 多做宣传.许昌做网站联系电话
  • 网站开发有哪些类型成都公司注册网
  • 15年做哪个网站致富软件工程课程设计