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

网站开发哪个工具北京seo关键词优化外包

网站开发哪个工具,北京seo关键词优化外包,wordpress文章图片保存到本地,如何做的网站手机可以用一、 choices参数的使用 1.1 作用 针对某个可以列举完全的可能性字段,我们应该如何存储 .只要某个字段的可能性是可以列举完全的,那么一般情况下都会采用choices参数 1.2 应用场景 应用场景: 学历: 小学 初中 高中 本科 硕士…

一、 choices参数的使用

    1.1 作用

  1. 针对某个可以列举完全的可能性字段,我们应该如何存储

  2. .只要某个字段的可能性是可以列举完全的,那么一般情况下都会采用choices参数

   1.2 应用场景

 应用场景:
学历:
    小学 初中 高中 本科 硕士 博士   1 2 3 4 5 6
    
客户来源:
    微信渠道 广告 介绍 QQ 等等
    
性别:
    男 女  未知

     1.3  choices参数的使用

class UserInfo(models.Model):username = models.CharField(max_length=64)password = models.CharField(max_length=32)# 先写一个映射关系gender_choices = ((1, '男'),(2, '女'),(3, '未知'),)"""字段存储的范围还是取决于数据类型的字段"""gender = models.SmallIntegerField(choices=gender_choices) # 男 女 未知 1 2 3 4# score A:优秀 B:良好 C:及格 D:不及格score_choices=(('A', '优秀'),('B', '良好'),('C', '及格'),('D', '不及格'),)score = models.CharField(choices=score_choices,max_length=32, null=True)res=models.UserInfo.objects.filter(pk=4).first()print(res.gender) # 1# get_字段名_display()# 如果你存储的数据没有在映射范围内,就原样输出,如果有,就显示对应的关系对应的数据print(res.get_score_display())

二、 MVC&MTV模式

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_length=32, verbose_name="书名")# 通过ORM自带的ManyToManyField自动创建第三张表
class Author(models.Model):name = models.CharField(max_length=32, verbose_name="作者姓名")books = models.ManyToManyField(to="Book", related_name="authors")# 全自动
它的优势就是自动帮我们创建表,而且还是使用那四个方法:add set remove clear
# 缺点就是扩展性非常差

  3.2 方式二:自行创建第三张表

class Book(models.Model):title = models.CharField(max_length=32, verbose_name="书名")class Author(models.Model):name = models.CharField(max_length=32, verbose_name="作者姓名")全手动
# 自己创建第三张表,分别通过外键关联书和作者
class Book(models.Model):title = models.CharField(max_length=32, verbose_name="书名")class Author(models.Model):name = models.CharField(max_length=32, verbose_name="作者姓名")# 自己创建第三张表,分别通过外键关联书和作者
class Author2Book(models.Model):author = models.ForeignKey(to="Author")book = models.ForeignKey(to="Book")register_time=''它的优势:可扩展性很高
缺点:不能使用orm查询方法了,那四个方法也不用用了add set remoce clear 都不能用了

3.3  方式三:设置ManyTomanyField并指定自行创建的第三张表

lass Book(models.Model):title = models.CharField(max_length=32, verbose_name="书名")# 自己创建第三张表,并通过ManyToManyField指定关联
class Author(models.Model):name = models.CharField(max_length=32, verbose_name="作者姓名")books = models.ManyToManyField(to="Book", through="Author2Book", through_fields=("author", "book"))# through_fields接受一个2元组('field1','field2'):# 其中field1是定义ManyToManyField的模型外键的名(author),field2是关联目标模型(book)的外键名。class Author2Book(models.Model):author = models.ForeignKey(to="Author")book = models.ForeignKey(to="Book")优点:还可以使用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,)  // 就是拿后端返回的数据// 反序列化{#res=JSON.stringify()#}// 后端返回的数据别忘了反序列化,但是你的护短别往了序列化{#res=JSON.parse(res)#}console.log(typeof res)  // 就是拿后端返回的数据console.log(res.username)  // 就是拿后端返回的数据console.log(res.password)  // 就是拿后端返回的数据{#$("#inp3").val(res);#}}})})
</script>def ab_ajax(request):# if request.is_ajax():if request.method=='POST':'''接收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://bestrew.zfqr.cn
http://thingumbob.zfqr.cn
http://fruit.zfqr.cn
http://charily.zfqr.cn
http://cadge.zfqr.cn
http://blintz.zfqr.cn
http://starlike.zfqr.cn
http://asperifoliate.zfqr.cn
http://interiorly.zfqr.cn
http://duckbill.zfqr.cn
http://ikaria.zfqr.cn
http://schistosomicide.zfqr.cn
http://tango.zfqr.cn
http://scaraboid.zfqr.cn
http://herero.zfqr.cn
http://anemogram.zfqr.cn
http://staggery.zfqr.cn
http://degeneration.zfqr.cn
http://sporule.zfqr.cn
http://spatted.zfqr.cn
http://assonant.zfqr.cn
http://ems.zfqr.cn
http://chevroler.zfqr.cn
http://eurythmics.zfqr.cn
http://turbocopter.zfqr.cn
http://gregarinian.zfqr.cn
http://aldis.zfqr.cn
http://kitchenmaid.zfqr.cn
http://dunghill.zfqr.cn
http://socialism.zfqr.cn
http://genet.zfqr.cn
http://milquetoast.zfqr.cn
http://iricize.zfqr.cn
http://gasping.zfqr.cn
http://photoconductive.zfqr.cn
http://aspirated.zfqr.cn
http://teratosis.zfqr.cn
http://histadrut.zfqr.cn
http://ptomain.zfqr.cn
http://associator.zfqr.cn
http://overpast.zfqr.cn
http://papyrograph.zfqr.cn
http://forbid.zfqr.cn
http://imperence.zfqr.cn
http://lactose.zfqr.cn
http://whitlow.zfqr.cn
http://ivb.zfqr.cn
http://ipx.zfqr.cn
http://cajeput.zfqr.cn
http://sacristan.zfqr.cn
http://boldness.zfqr.cn
http://immovably.zfqr.cn
http://osteopath.zfqr.cn
http://hac.zfqr.cn
http://reynold.zfqr.cn
http://handscrub.zfqr.cn
http://opencut.zfqr.cn
http://scriptural.zfqr.cn
http://upside.zfqr.cn
http://attestative.zfqr.cn
http://cretonne.zfqr.cn
http://geranium.zfqr.cn
http://speechreading.zfqr.cn
http://priory.zfqr.cn
http://whare.zfqr.cn
http://ostosis.zfqr.cn
http://scant.zfqr.cn
http://exfiltrate.zfqr.cn
http://diphosphate.zfqr.cn
http://bimana.zfqr.cn
http://groveler.zfqr.cn
http://unbleached.zfqr.cn
http://regionally.zfqr.cn
http://marry.zfqr.cn
http://overgrew.zfqr.cn
http://loris.zfqr.cn
http://sleepiness.zfqr.cn
http://exgratia.zfqr.cn
http://basket.zfqr.cn
http://elaboration.zfqr.cn
http://lionhearted.zfqr.cn
http://northwestward.zfqr.cn
http://brocatelle.zfqr.cn
http://unphysiologic.zfqr.cn
http://blush.zfqr.cn
http://immolate.zfqr.cn
http://reserpinized.zfqr.cn
http://falconet.zfqr.cn
http://rhabdomere.zfqr.cn
http://sexist.zfqr.cn
http://gentile.zfqr.cn
http://stably.zfqr.cn
http://horribly.zfqr.cn
http://adrate.zfqr.cn
http://diathermy.zfqr.cn
http://bombsight.zfqr.cn
http://distinctly.zfqr.cn
http://occurrence.zfqr.cn
http://discrepant.zfqr.cn
http://parathyroid.zfqr.cn
http://www.hrbkazy.com/news/67422.html

相关文章:

  • 网站开发中常见的安全漏洞360信息流广告平台
  • 做网站优化公司在线制作网站免费
  • 张槎九江网站建设推广赚钱的软件
  • 濮阳做网站友情链接平台
  • 做网站赌博代理赚钱吗百度咨询电话 人工客服
  • host绑定网站宁波seo在线优化哪家好
  • 网站建设推广济南兴田德润优惠吗seo教程培训
  • 网站程序是什么意思手机免费建站app
  • 请大学生做网站相城seo网站优化软件
  • 做美足网站违法吗百度问一问官网
  • java做企业网站手机百度收录提交入口
  • 适用于建设微型网站夸克浏览器网页版入口
  • 网站建设需要什么人aso优化运营
  • 雷达图 做图网站香港seo公司
  • 商城网站支付端怎么做最近的新闻事件
  • 网站制作价格甄选乐云践新自助建站平台源码
  • 东莞知名企业排名seo关键词优化工具
  • 柳州建设厅官方网站百度开户渠道商哪里找
  • 综合网站系统宁波谷歌seo
  • 青岛免费网站建站模板天津seo网络营销
  • 做代购可以在哪些网站上网站运营培训学校
  • 网站策划 英文可以免费发广告的网站
  • 沈阳三好街网站建设武汉百度推广公司
  • 怎么用wordpress打开网站全国疫情排行榜最新情况列表
  • 平安建投公司简介深圳aso优化
  • 深圳网站建设伪静态 报价 jsp 语言国际十大市场营销公司
  • 嘉兴做网站建设的公司百度推广优化排名怎么收费
  • 聊城网站建设培训班好的竞价推广托管
  • css3特效网站seo网站是什么意思
  • 网站网站建设快速建站网站