这个的路径是怎么来的,是有一个个的url路由分发过来的

这两个是相等的,若url后面加括号了,那么前面就不用这个装饰器了;反之,若装饰器使用了,那么这个url后面就不要加括号了

eg:其他的views.test这是一个视图函数,而那个url()这个一个大列表,里面全是url,这里面就是所谓的二级分发的url,

到这里之后,这里都是函数的返回值,这是一个大的元祖形式,虽然没有括号,但是有逗号,这里既是一个大的元祖

再次点击get_url跳转到这里

这个u前面是一个正则,,分别是应用名,表明,后面model_config这是url的样式类,同样,这里又是一个大的元祖

点击这个config,会跳转到这里,且这个model_config是属于registry里面的一个值

点击这个registry跳转到这里,这是一个字典

类的实例化, 不加括号就不是启动实例,这个应该和设置一个别名是一样的;
说白了 加括号就是调用init函数 不加括号就是不调用init函数,实例化加括号的话,自动执行init函数

点击ModelStark到这里,看到其下面的方法

—————————————————————————————————————————————————————————————————————

 isinstance    

  Python 中的isinstance函数,isinstance是Python中的一个内建函数。是用来判断一个对象的变量类型。

  1. 其第一个参数(object)为对象,第二个参数为类型名(int...)或类型名的一个列表((int,list,float)是一个列表)。其返回值为布尔型(True or flase)。
  2.  
  3. 若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True
  4.  
  5. 简单来说就是判断object是否与第二个参数的类型相同,举例如下:
  6.  
  7. # -*- coding: utf-8 -*-
  8. p = '123'
  9. print "1.",isinstance(p,str)#判断P是否是字符串类型
  10. a = "中国"
  11. print isinstance(a,unicode) #判断a是否是Unicode编码
  12. print isinstance(a,(unicode,str))#判断a所属类型是否包含在元组中
  13. list1 = [1,2,3,4,5]
  14. print isinstance(list1,list)#判断list1是否是列表的类型

参考:https://www.cnblogs.com/beginner-boy/p/7240673.html

——————————————————————————————————————————————

request.GET请求之QueryDict和urlencode

request.GET  >>>>>获得的是一个字典,但是打印出来的是<QueryDict:{}>   ,这个字典类型是不可变类型,这个类型的是无法直接进行赋值操作的,这个QueryDict源码中是写好的

修改了这个之后,就能赋值操作了,但是最好还是不要进行修改源码;最好不要修改数据,要修改的话,可以复制一份,然后在复制的里面进行操作

第二个知识点
urlencode就是圈中这个格式,且只需要一个引号就行了

内置的一个方法,即可得到我们想要的这种形式 (eg:a=1&b=2)

这个可以把字典中的键值对,组装成字符串 (3.16日9.08可听下)

总结,request.GET是一个不可变的字典,可以用它下面的这个urlencode弄成这样的格式。

 
第三知识点: 因是不可变类型,要想修改这个字典,需要再括号内设置参数=True

——————————————————————————————————————————————

post和get请求

第一个是get请求,下面若是GET请求,那么能取到网址上的键值对,用POST的话,则是一个空字典;   
第二个,是POST请求,那么也能用GET取出网址上的键值对,POST则取出标签中的键值对。

——————————————————————————————————————————————

 limit_choices_to   》》》》Model字段

  在model转换过程中,数据可以在这做筛选,按照字典内的数据条件进行筛选,把筛选之后的数据放到select标签中去

limit_choice_to
    这个是干嘛的,意思就是平时用.......all()取出的是所有的字段
    用了这个limit.......之后,就只显示所过滤出来的字段,两个方框中间的代码,和最下面方框的代码效果是一样的,是一depart_id__in作为键,取出后面的1002、1003作为值,并在后台进行显示
ps:depart_id__in这个不是跨表查询,直接depart__表名,这才算是跨表

ps:
    ModelForm,就是把Model转换成form的而已
    由A 转成B,中介就是中间的部分modelform

——————————————————————————————————————————————

 

url分发、isinstance、request.GET请求之QueryDict和urlencode、post和get请求、limit_choices_to(Model字段)的更多相关文章

  1. django url分发,视图,模板回顾

    Django基础轮廓 MTV+controller 一 url分发系统: 1 简单使用 url(r'^articles/2003/$', views.special_case_2003), # spe ...

  2. url分发(二级分发)

    from django.shortcuts import HttpResponsedef test(request): return HttpResponse('test') from django. ...

  3. day 82 URL分发

    一 .admin 流程 (1) 启动 autodiscover_modules('admin', register_to=site) (2) 注册 单例模式 admin.site=AdminSite( ...

  4. Django路由配置之子路由include(URL分发)

    子路由include(URL分发) 在一个项目中可能存在多个应用,为了方便区分和管理,在项目的总路由urls.py中会进行路由分发: (1)项目总路由导入from  django.conf.urls  ...

  5. day53:django:URL别名/反向解析&URL分发&命名空间&ORM多表操作修改/查询

    目录 1.URL别名&反向解析 2.URL分发&命名空间 3.ORM多表操作-修改 4.ORM多表操作-查询 4.1 基于对象的跨表查询 4.2 基于双下划线的跨表查询 4.3 聚合查 ...

  6. Web service request SetParameters to Report Server http://host/reportserver failed. Error: 请求因 HTTP 状态 401 失败: Unauthorized

    迁移CRM服务器完成后在访问CRM的内部报表时报错,在查看应用服务器的日志时发现报"Web service request SetParameters to Report Server ht ...

  7. URL分发(URLConf)

    如果项目中应用太多,都写到顶层的urls.py中,如果个别应用url出问题的话,其他的应用也会受影响,所以我们需要对每个应用下面都写一个urls.py,实现分发 顶层urls.py中写:(属于blog ...

  8. Ajax详解及其案例分析------如何获得Ajax对象,使用Ajax对象发送GET和POST请求,校验用户名,POST和GET请求时的乱码处理,实现级联的下拉列表

    本节主要内容预览: 1 获得Ajax对象 2 使用Ajax对象发送GET请求 3 使用Ajax对象发送POST请求 4 使用Ajax校验用户名 5 POST请求时的乱码处理 6 GET请求时的乱码处理 ...

  9. 请求转发:MVC设计模式、细节、请求域属性的编程实例、请求重定向和请求转发的区别

      请求转发:MVC设计模式.细节.请求域属性的编程实例.请求重定向和请求转发的区别 MVC设计模式将一次请求的响应过程分成三个功能模块(一般称之为层)来协同完成,这三个模块分别是Model(模型层) ...

随机推荐

  1. AWS系列-创建 IAM 用户

    创建 IAM 用户(控制台) 官方文档 https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/introduction.html 通过 AWS ...

  2. Window系统、主函数和窗体函数这三者之间的关系

    理解Window系统.主窗体.窗体函数这三者之间的关系,对于编写Windows程序十分重要. 主函数和窗体函数都是由Windows系统来调用的函数.仅仅只是主函数是程序启动之后.系统首先调用的函数: ...

  3. 实战c++中的string系列--不要使用memset初始化string(一定别这么干)

    參考链接: http://www.cppblog.com/qinqing1984/archive/2009/08/07/92479.html 百度百科第一次这么给力: void *memset(voi ...

  4. 【Python】Docx解析

    1.cd D:\ProgramData\Anaconda3 2.pip install python-docx 3.python代码处理 # -*- coding: utf-8 -*- import ...

  5. error: pathspec 'master' did not match any file(s) known to git.

    问题描述: 在远程服务器上新建裸仓库git  --bare init : git clone裸仓库到本地: 本地新建并切换分支xccdev,git checkout -b xccdev: 从xccde ...

  6. vmware 安装 Mac OS X 10.9 Mavericks

    This guide shows how to install fresh OS X 10.9 Mavericks on VMware workstation with Windows 7 or Wi ...

  7. mybatis 之 parameterType="String" resultType="java.util.HashMap">

    public ServiceMessage<Map<String, String>> getGoodsStockNo( List<Map<String, Strin ...

  8. Ubuntu输入法切换问题

    不知道改了个什么东西,Ubuntu 15.04 中Ctrl+Space不能切换输入法了,因此不能输入英文,shell就更是没法工作,在设置里面找了好久,“文本输入”/“语言支持”/“键盘”里面都没找到 ...

  9. iOS - 代码规范的提示

    我们在些程序时会发现苹果里面有好多非常好的提示 比如: 1.每次SDK升级后 一些方法的方法已经过时了,这时候会给你提示描述该方法已经过期(作用:1.兼顾老版本 2.给开发者一个提示) 2.有时候项目 ...

  10. thinkphp5.0 获取请求信息

    如果要获取当前的请求信息,可以使用\think\Request类,除了下文中的 $request = Request::instance(); 也可以使用助手函数 $request = request ...