Web框架开发-Django-form组件

django 之知识点总结以及Form组件

一、model常用操作

1、13个API查询:all,filter,get ,values,values_list,distinct,order_by ,reverse , exclude(排除),count,first,last,esits(判断是否存在)

需要掌握的all、values、values_list

  • all:打印的是一个QuerySet集合,一个列表里面放的对象
  • values:是一个字典形式
  • values_list:是一个元组形式

all的性能是最低的

2、only和defer

1

2

3

4

5

6

7

8

9

10

datalist = models.Userinfo.objects.all().only("name","email")  #拿到的还是一个QuerySet集合,仅仅取name和email

for item in datalist:

    print(item.id)

    print(item.name)

    print(item.pwd)   #只要表里有这个字段,一样会取到值,额外的会再发一次请求

datalist = models.Userinfo.objects.all().defer("name","email"#阻止,不取name和email

for item in datalist:

    print(item.id)

    print(item.pwd)

注意:用only的话就去取only里面的字段,取其它的字段效率太低了,尽可能的少的连接数据库

3、路由系统

反向生成URL:

有两种方式:{% url “a1” %}

reverse(“a1”)

用reverse需要导入: from django.core.urlresolvers import reverse

1

2

3

4

5

6

7

8

9

10

11

/index/     func    name=a1

    { % url "a1"}

     reverse('a1')

                 

/index/(\d+)/     func    name=a2

    { % url "a2" 11 %}

    reverse('a2',args=(11,))

                 

/index/(?P<nid>\d+)/     func    name=a3

    { % url "a2" nid=11 %}

    reverse('a3',kwargs={ 'nid':11})

1

2

3

4

5

6

7

8

9

def index(request):

    if request.method == "POST":

        """

        两个return是一样的,用url反向解析就相当于下面的路径在urls里面

        协商别名name="index",但在模板中还是要用{%url"index"%}

        """

       # return redirect(reverse(index))

        return redirect("index.html")   # 跳转到个人主页

    return render(request, "hh.html")

4、Django的生命周期

web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)

  1. 首先走wsgi模块,这个模块也是一个协议,包括wsgiref和uwsgi
  2. 然后路由分配---------views视图
  3. 从数据库取数据--------渲染到HTML

 

二、form组件

1、Form组件介绍

Form组件可以做的几件事情:

1、用户请求数据验证

2、自动生成错误信息    

3、打包用户提交的正确信息

4、如果其中有一个错误了,其他的正确这,保留上次输入的内容

4、自动创建input标签并可以设置样式

2、Form组件的使用

1、创建规则

1

2

3

4

5

class Foo(Form)    # 必须继承

        username = XXX

        password = XXX

        email = XXX

注意这里的字段必须和input字段一致

2、数据和规则进行匹配

先导入view.py

1

2

3

from django.forms import Form

from django.forms import fields

from django.forms import widgets

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

上一篇:tensflow模型转onnx实践


下一篇:【Review】小米汽车发布会