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

大学生兼职网站建设策划书有哪些可以推广的平台

大学生兼职网站建设策划书,有哪些可以推广的平台,中国交通建设集团有限公司待遇,域名icp备案查询文章目录 一、choices参数choices参数的用法choices 参数用法总结 二、MVC与MTV模式1.MVC2.MTV 三、多对多的三种创建方式1.全自动创建2.纯手动创建半自动创建 四、Django与Ajax1.什么是Ajax常见的场景Ajax案例 一、choices参数 在没有用到choices参数之前#xff0c;我们在D… 文章目录 一、choices参数choices参数的用法choices 参数用法总结 二、MVC与MTV模式1.MVC2.MTV 三、多对多的三种创建方式1.全自动创建2.纯手动创建半自动创建 四、Django与Ajax1.什么是Ajax常见的场景Ajax案例 一、choices参数 在没有用到choices参数之前我们在Django ORM创建表类中的字段是不是下面这样的 # 举例这是一张用户基本信息表 class UserInfo(models.Model):username CharField(max_length32)age IntegerField() # 整型字段不要传max_length参数哦----特别注意gender CharField(max_length2)# 用户性别通过上面的userinfo表我们是否可以想一下在用户性别字段中人类的性别好像只有两种表示方式男/女那这样我们如果有100万条用户信息而这100万条用户的性别分别有50万男性和50万女性。 这个时候就造成了问题既然我们这个字段的描述信息只需要两种描述就能完成这个用户字段在性别的描述我们为什么不想一种方便简洁的形式去描述每一个用户的性别呢 这时候就可以用到choices参数 我们依然使用数字来记录gender这个用户性别字段的描述大家学过数据库就知道能用整型存储的信息为什么要用字符型呢很明显是因为整型比字符型占的空间小。注意并不是所有的这种仅仅用几个描述就能完成队大量数据的描述都去用数字的此处只是用gender字段为例 choices参数的概念它是一种以列表 / 元组的型式里面嵌套着少数几个小元组的方式表示一种对应关系 choices参数的用法 针对上述的用户信息表我们做以下修改将用户性别用整型去记录 # 创建userinfo表 class UserInfo(models.Model):username models.CharField(max_length32)age models.IntegerField()# 在此处我们用到choices参数# 先定义一个chocies参数的对应关系/其是就相当于是代表数字的说明与介绍choices_gender ((1, 男),(2, 女),)# 以上定义的choices列表就是下面gender字段的choices参数对应的一个对应关系此处choices这个列表也可以写成元组的形式根据个人爱好# 在我们将性别字设置成IntegerField类对象的时候将它的choices参数设置为我们上面定义的choices列表gender models.IntegerField(max_length2,choices choices_gender)提问如果我们向这个表中的gender字段存的值不在我们定义的choices列表中会怎么样呢? # 向表中插入几条数据 models.UserInfo.objects.create(usernamejack,age18,gender1) models.UserInfo.objects.create(usernamejerry,age18,gender2) models.UserInfo.objects.create(usernametank,age18,gender3)总结如果存的数字是choices列表中的数字可以存进userinfo表存的数字不在choices列表中对应关系中也可以存 # 现在我们来查一下这张表中用户对应的gender字段的值。 user_obj_list models.UserInfo.objects.all()for user_obj in user_obj_list:print(f{user_obj.username}---{user_obj.age}---{user_obj.get_gender_display}) choices 参数用法总结 在定义choices这个对应关系的时候可以用列表套元组可以用字典套元组随意看自己心情自定义的这个对应关系的变量名choices可以换别的看你心情在往表中存数据时不管是不是对应关系中的内容都可以往表中存在查询使用choces参数的这个字段时想要查询这个字段的值必须用get_字段名_display()才能获取到正确的对应内容固定句式 数据对象.get_字段名_display() 当没有对应关系的时候 该句式获取到的还是数字 二、MVC与MTV模式 1.MVC Web服务器开发领域里著名的MVC模式所谓MVC就是把Web应用分为模型(M)控制器©和视图(V)三层他们之间以一种插件式的、松耦合的方式连接在一起模型负责业务对象与数据库的映射(ORM)视图负责与用户的交互(页面)控制器接受用户的输入调用模型和视图完成用户的请求其示意图如下所示 2.MTV Django的MTV模式本质上和MVC是一样的也是为了各组件间保持松耦合关系只是定义上有些许不同Django的MTV分别是值 ● M 代表模型Model 负责业务对象和数据库的关系映射(ORM)。 ● T 代表模板 (Template)负责如何把页面展示给用户(html)。 ● V 代表视图View 负责业务逻辑并在适当时候调用Model和Template。 除了以上三层之外还需要一个URL分发器它的作用是将一个个URL的页面请求分发给不同的View处理View再调用相应的Model和TemplateMTV的响应模式如下所示 一般是用户通过浏览器向我们的服务器发起一个请求(request)这个请求回去访问视图函数如果不涉及到数据调用那么这个时候视图函数返回一个模板也就是一个网页给用户视图函数调用模型模型去数据库查找数据然后逐级返回视图函数把返回的数据填充到模板中空格中最后返回网页给用户。 三、多对多的三种创建方式 注意多对多关系这种虚拟外键才有add、set、clear、remove一对一和一对多的表是无法使用的 1.全自动创建 class Book(models.Model):title models.CharField(max_length32)authorsmodels.ManyToManyField(toAuthor) class Author(models.Model):name models.CharField(max_length32)优势自动创建第三张表并且提供了add、remove、set、clear四种操作 劣势第三张表无法创建更多的字段扩展性较差。如果我们有一些业务逻辑就是在关系表上我们就无法通过第三张表完成了。 2.纯手动创建 class Book(models.Model):title models.CharField(max_length32) class Author(models.Model):name models.CharField(max_length32) class Book2Author(models.Model):bookmodels.ForeignKey(toBook)author models.ForeigKey(toAuthor)othersmodels.CharField(max_length32)join_time models.DataField(auto_now_addTrue)优势第三张表完全由自己创建扩展性强 劣势编写繁琐并不支持add、remove、set、clear以及正反向概念 半自动创建 class Book(models.Model):title models.CharField(max_length32)authors models.ManyToManyField(toAuthor,throughBook2Author,through_fields(book,author)# 外键在哪个表就把book表放前面) class Author(models.Model):name models.CharField(max_length32) class Book2Author(models.Model):book models.ForeignKey(toBook, on_deletemodels.CASCADE)author models.ForeignKey(toAuthor, on_deletemodels.CASCADE)others models.CharField(max_length32)join_time models.DateField(auto_now_addTrue)优势第三张表完全由自己创建的扩展性强正反向概念依然可以使用 劣势编写繁琐不再支持add、remove、set、clear 四、Django与Ajax 1.什么是Ajax AJAXAsynchronous Javascript And XML翻译成中文就是“异步的Javascript和XML”。即使用Javascript语言与服务器进行异步交互传输的数据为XML当然传输的数据不只是XML。ajax不是一门新的技术而是一种使用现有标准的新方法。它本身又很多版本我们目前学习的是jQuery版本版本无所谓本质一样就可以。 功能介绍异步提交、局部刷新 优点 不重新加载整个页面的情况下可以跟服务器交换数据并更新部分网页内容。客户是感觉不到的只需要用户允许JavaScript在浏览器上执行。 1.AJAX使用JavaScript技术向服务器发送异步请求 2.AJAX请求无需刷新整个页面 3.因为服务器响应内容不再是整个页面而是页面中的部分内容所以AJAX性能高 4.两个关键点异步请求局部刷新常见的场景 搜索引擎会根据用户输入的关键字自动提示检索关键字。其实这里就使用了AJAX技术当文件框发生了输入变化时使用AJAX技术向服务器发送一个请求然后服务器会把查询到的结果响应给浏览器最后再把后端返回的结果展示出来。 这注册过程页面时没有刷新的只是刷新页面中我们鼠标点击的局部位置当请求发出后浏览器还可以进行其他操作无需等待服务器的响应。 Ajax案例 我们来做一个计算的例子 ajax.html body input typetext idinp1 input typetext idinp2 input typetext idinp3 button classbtn提交/buttonscript$(.btn).click(function () { //把提交按钮绑定一个点击事件var inp1 $(#inp1).val();var inp2 $(#inp2).val();//把获取到的两个值提交到后端让python来计算两个值然后返回$.ajax({url: , //默认不写是当前地址type: post, //提交方式默认是getdata: {inp1: inp1, inp2: inp2}, //朝后端提交的数据KV键值对形式//回调函数success用来接受后端返回的数据success:function (res){console.log(res) //打印后端返回的数据$(#inp3).val(res) //将接受到的数据返回到inp3中}})}) /script /bodyviews.py from django.shortcuts import render, HttpResponse import json# Create your views here.def ajax(request):if request.method POST:接受ajax提交过来的数据d1 request.POST.get(inp1)d2 request.POST.get(inp2)d3 int(d1) int(d2) # 转为整型计算值print(request.POST) # QueryDict: {inp1: [1], inp2: [1]}return HttpResponse(json.dumps(d3)) # 序列化并返回给前端return render(request, ajax.html)这个时候需要拿到后端字典里的数据要怎么做 ajax.html script$(.btn).click(function () { //把提交按钮绑定一个点击事件var inp1 $(#inp1).val();var inp2 $(#inp2).val();//把获取到的两个值提交到后端让python来计算两个值然后返回$.ajax({url: , //默认不写是当前地址type: post, //提交方式默认是getdata: {inp1: inp1, inp2: inp2}, //朝后端提交的数据KV键值对形式//回调函数success用来接受后端返回的数据success:function (res){console.log(res) //打印后端返回的数据{#resJSON.parse(res) //反序列化json格式数据如果后端是用JsonResponse返回数据就不需要前端反序列化#}console.log(res.username)console.log(res.password) //前度想要拿到某个值就需要反序列化后端别忘了序列化}})}) /scriptviews.py from django.shortcuts import render, HttpResponse import json from django.http import JsonResponse# Create your views here.def ajax(request):if request.method POST:接受ajax提交过来的数据user_dic {username:jack,password:123}return JsonResponse(user_dic) # 序列化并返回给前端return render(request, ajax.html)
http://www.dnsts.com.cn/news/154284.html

相关文章:

  • 那个网站专门做婚纱相册建设银行网站不能建行转他行了
  • 建设公司网站模板下载做抽奖网站违法吗
  • 贵阳网站设计企业云开放平台
  • 网站建设 培训 南充wordpress首页中不显示文章
  • 食品网站网页设计微信公众号网页版入口
  • 淘宝网页版镇江网站关键字优化公司
  • 论坛网站开发开题报告泉州做网站优化哪家好
  • 网站建设用模板好吗wordpress自豪的
  • 手机网站设计尺寸毫米有哪些做汽配的网站
  • l建设银行网站网页制作素材按钮
  • 网站做的好看术语免费空间分享
  • 深圳做微信网站中国建筑集团2022招聘
  • 有服务器和网站代码了 怎么建站上海中汇建设发展有限公司网站
  • 做网站运营有前途么大淘客怎么做网站
  • 建站宝盒建网站王也头像超清晰
  • 视频多的网站建设网站关键字搜索功能
  • 微信公众号网站制作做一手房做那个网站好
  • 怎么弄一个公司网站上海网站建设开发哪家好
  • 网站建设工程师的职位要求珠宝类企业网站(手机端)
  • 奥派网站建设长沙免费网站排名
  • 网站布局技术神马排名seo
  • 广州黄埔网站建设苏州建网站皆去苏州聚尚网络
  • html5 网站开发网页图片文字识别
  • iis怎么做ip网站吗免费h5生成网站
  • 网站商城制作深圳电子商务网站开发
  • 开设网站的费用discuz网站编码
  • 网站开发多用什么语言缔造自助建站
  • 青岛网站设计方案揭阳网站制作机构
  • wordpress文章页图片seo优化的技巧
  • 佛山网站的建设企业管理app排行榜