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

荆门市网站建设_网站建设公司_Java_seo优化

信誉好的企业网站开发,创建网站app,合肥做网站的价格,wordpress 资源下载主题一、 choices参数的使用 1.1 作用 针对某个可以列举完全的可能性字段#xff0c;我们应该如何存储 .只要某个字段的可能性是可以列举完全的#xff0c;那么一般情况下都会采用choices参数 1.2 应用场景 应用场景#xff1a; 学历#xff1a; 小学 初中 高中 本科 硕士…一、 choices参数的使用 1.1 作用 针对某个可以列举完全的可能性字段我们应该如何存储 .只要某个字段的可能性是可以列举完全的那么一般情况下都会采用choices参数 1.2 应用场景 应用场景 学历     小学 初中 高中 本科 硕士 博士   1 2 3 4 5 6      客户来源:     微信渠道 广告 介绍 QQ 等等      性别     男 女  未知 1.3  choices参数的使用 class UserInfo(models.Model):username models.CharField(max_length64)password models.CharField(max_length32)# 先写一个映射关系gender_choices ((1, 男),(2, 女),(3, 未知),)字段存储的范围还是取决于数据类型的字段gender models.SmallIntegerField(choicesgender_choices) # 男 女 未知 1 2 3 4# score A:优秀 B良好 C及格 D不及格score_choices((A, 优秀),(B, 良好),(C, 及格),(D, 不及格),)score models.CharField(choicesscore_choices,max_length32, nullTrue)resmodels.UserInfo.objects.filter(pk4).first()print(res.gender) # 1# get_字段名_display()# 如果你存储的数据没有在映射范围内就原样输出如果有就显示对应的关系对应的数据print(res.get_score_display()) 二、 MVCMTV模式 2.1 MVC  MVC 模式Model–view–controller是软件工程中的一种软件架构模式把软件系统分为三个基本部分模型Model、视图View和控制器Controller。 MVC 以一种插件式的、松耦合的方式连接在一起。 模型M- 编写程序应有的功能负责业务对象与数据库的映射(ORM)。 视图V- 图形界面负责与用户的交互(页面)。 控制器C- 负责转发请求对请求进行处理。 2.2  MTV 模型 Django 的 MTV 模式本质上和 MVC 是一样的也是为了各组件间保持松耦合关系只是定义上有些许不同Django 的 MTV 分别是指 M 表示模型Model编写程序应有的功能负责业务对象与数据库的映射(ORM)。 T 表示模板 (Template)负责如何把页面(html)展示给用户。 V 表示视图View负责业务逻辑并在适当时候调用 Model和 Template 三、多对多的三种创建方式 3.1方式一通过ManyToManyField自动创建第三张表 class Book(models.Model):title models.CharField(max_length32, verbose_name书名)# 通过ORM自带的ManyToManyField自动创建第三张表 class Author(models.Model):name models.CharField(max_length32, verbose_name作者姓名)books models.ManyToManyField(toBook, related_nameauthors)# 全自动 它的优势就是自动帮我们创建表而且还是使用那四个方法add set remove clear # 缺点就是扩展性非常差 3.2 方式二自行创建第三张表 class Book(models.Model):title models.CharField(max_length32, verbose_name书名)class Author(models.Model):name models.CharField(max_length32, verbose_name作者姓名)全手动 # 自己创建第三张表分别通过外键关联书和作者 class Book(models.Model):title models.CharField(max_length32, verbose_name书名)class Author(models.Model):name models.CharField(max_length32, verbose_name作者姓名)# 自己创建第三张表分别通过外键关联书和作者 class Author2Book(models.Model):author models.ForeignKey(toAuthor)book models.ForeignKey(toBook)register_time它的优势可扩展性很高 缺点不能使用orm查询方法了那四个方法也不用用了add set remoce clear 都不能用了 3.3  方式三设置ManyTomanyField并指定自行创建的第三张表 lass Book(models.Model):title models.CharField(max_length32, verbose_name书名)# 自己创建第三张表并通过ManyToManyField指定关联 class Author(models.Model):name models.CharField(max_length32, verbose_name作者姓名)books models.ManyToManyField(toBook, throughAuthor2Book, through_fields(author, book))# through_fields接受一个2元组field1field2# 其中field1是定义ManyToManyField的模型外键的名authorfield2是关联目标模型book的外键名。class Author2Book(models.Model):author models.ForeignKey(toAuthor)book models.ForeignKey(toBook)优点还可以使用orm的方法及正反向查询但是不能使用add set remove clear方法了 推荐使用另外两种方式全自动额不太建议 四、  Ajax技术 它是前端的技术不是Python的知识点但是它需要结合Python来学习 AJAX除了异步的特点外还有一个就是浏览器页面局部刷新 1. 异步提交 2. 局部刷新 Ajax的学习按理来说其实还是js代码应该学习JavaScript的Ajax的写法就不学习JavaScript版本的直接学习jQuery版本的帮我们封装了如果不封装js版本的Ajax非常复杂 document.getElementById(d1).innerHTML xmlhttp.responseText; document.getElementByClssName(c1).innerHTML xmlhttp.responseText; document.getElementById(d1).innerHTML xmlhttp.responseText; document.querySelector(#d1 a ).innerHTML xmlhttp.responseText; document.querySelector(.c1).innerHTML xmlhttp.responseText; document.querySelector(h1).innerHTML xmlhttp.responseText; 2. 案例 有一个页面 script$(.btn).click(function () {var inp1 $(#inp1).val();var inp2 $(#inp2).val();// 把获取到的两个值提交到后端然后让Python来计算然后返回$.ajax({url:, // 默认不写就是朝当前地址传递type:post,dataType:json,data:{inp1:inp1, inp2:inp2},// 回调函数用来接收后端返回的数据success:function (res) {// {username: kevin, password: 123}console.log(res,) // 就是拿后端返回的数据// 反序列化{#resJSON.stringify()#}// 后端返回的数据别忘了反序列化但是你的护短别往了序列化{#resJSON.parse(res)#}console.log(typeof res) // 就是拿后端返回的数据console.log(res.username) // 就是拿后端返回的数据console.log(res.password) // 就是拿后端返回的数据{#$(#inp3).val(res);#}}})}) /scriptdef ab_ajax(request):# if request.is_ajax():if request.methodPOST:接收ajax提交过来的数据# QueryDict: {inp1: [1], inp2: [1]}print(request.POST)# d1 request.POST.get(inp1) # str# d2 request.POST.get(inp2) # str# d3 int(d1) int(d2)# 序列化import json# json.dumps(d3)user_dict {username:kevin, password:123}# return HttpResponse(json.dumps(d3))return HttpResponse(json.dumps(user_dict))# return JsonResponse(user_dict)return render(request, ab_ajax.html)
http://www.lebaoying.cn/news/21206.html

相关文章:

  • 龙岗坪地网站建设犀牛云做网站
  • 高埗镇仿做网站制图软件有哪几种
  • 免费空间访客网站比较有名的网站建设公司
  • 怎么建设淘客自己的网站_建设银行网站介绍
  • ftp上传网站后怎么弄丰台网站建设
  • 网站开发进度缓慢wordpress 图表插件
  • 佛山专业网站建设公司西安大雁塔图片
  • 营销网站建设价格dede网站模板怎么改
  • 如何自己建造网站公司建设网站的注意事项
  • 电脑网页打不开建设银行网站陕汽企业门户登录
  • 做网站的费用入什么科目请问哪里可以做网站
  • 提出网络营销思想的网站改版计划网站建设深圳哪家好
  • 郑州艾特网站建设公司虚拟空间的网站赚钱吗
  • 淄博网站制作培训qq网页版在线登录聊天
  • 大连网络推广seo和网站建设那个先学
  • 现在流行的网站开发工具烟台免费网站建设
  • 服务器做网站配置旅游网站开发系统分析
  • 南宁网站建设外包网站搭建php打不开
  • 小型企业管理软件哪个好永康网站建设优化建站
  • 参与做网站的收获网页设计入门图片
  • 帝国cms怎么做网站声明南通企业建站程序
  • 网站建设策划框架怎样做教育视频网站
  • 质量好网站建设哪家便宜宁波谷歌seo推广
  • 网站制作教程有趣的个人网站
  • 做微信的网站叫什么米有没有便宜的注册代理
  • 郑州最好的网站建设刘家窑网站建设公司
  • 长沙seo网站职校网站模板
  • 门户网站 建设 如何写wordpress首页怎么进入
  • 怎么手动安装网站程序营销型商务网站
  • 网站主域名网站建设展板