设为首页 加入收藏

TOP

python第一百零八天---Django 3 session 操作(一)
2017-09-30 16:24:23 】 浏览:1529
Tags:python 一百 ---Django session 操作

上节内容回顾:
  1 1、请求周期
  2       url> 路由 > 函数或类 > 返回字符串或者模板语言?
  3 
  4       Form表单提交:
  5          提交 -> url > 函数或类中的方法
  6                         - ....
  7                         HttpResponse('....')
  8                         render(request,'index.html')
  9                         redirect('/index/')
 10            用户  <    <  返回字符串
 11           (当接受到redirect时)自动发起另外一个请求
 12           --> url   .....
 13 
 14       Ajax:
 15          $.ajax({
 16             url: '/index/',
 17             data: {'k': 'v', 'list': [1,2,3,4], 'k3': JSON.stringfy({'k1': 'v'}))}, $(form对象).serilize()
 18             type: 'POST',
 19             dataType: 'JSON':
 20             traditional: true,
 21             success:function(d){
 22                location.reload()              # 刷新
 23                location.href = "某个地址"     # 跳转
 24             }
 25          })
 26          提交 -> url -> 函数或类中的方法
 27                      HttpResponse('{}')
 28                      render(request, 'index.html', {'name': 'v1'})
 29                      <h1>{{ name }}</h1> -->
 30                      <h1>v1</h1>
 31 
 32                      XXXXXXX redirect...
 33          用户 <<<<<  字符串
 34 
 35 
 36    2、路由系统URL
 37       a. /index/                               ->  函数或类
 38       b. /index/(\d+)                        ->  函数或类
 39       c. /index/(?P<nid>\d+)               ->  函数或类
 40       d. /index/(?P<nid>\d+) name='root'         ->  函数或类
 41          reverse()
 42          {% url 'root' 1%}
 43       e. /crm/    include('app01.urls')        -> 路由分发
 44 
 45       f. 默认值
 46          url(r'^index/', views.index, {'name': 'root'}),#在url设置默认值
 47 
 48          def index(request,name):#相关函数需要设置接收的形参
 49             print(name)
 50             return HttpResponse('OK')
 51 
 52       g. 命名空间
 53 
 54          /admin/    include('app01.urls',namespace='m1')
 55          /crm/      include('app01.urls',namespace='m1')
 56 
 57          app01.urls
 58          /index/    name = 'n1'
 59 
 60 
 61          reverser('m1:n1')
 62 
 63    3、后台取数据
 64       def func(request):
 65          request.POST
 66          request.GET
 67          request.FILES
 68          request.getlist
 69          request.method
 70          request.path_info
 71 
 72          return render,HttpResponse,redirect
 73 
 74    4、模板语言
 75       render(request, 'index.html')
 76       # for
 77       # if
 78       # 索引.   keys  values items    all
 79 
 80    5、 数据库 models操作
 81        #创建一个表结构
 82       class User(models.Model):
 83          username = models.CharField(max_length=32)
 84          email = models.EmailField()
 85 
 86       有验证功能
 87          Django Admin
 88       无验证功能:
 89          User.objects.create(username='root',email='asdfasdfasdfasdf')
 90          User.objects.filter(id=1).update(email='666')
 91 
 92 
 93         #创建一个表结构  用户属性表
 94       class UserType(models.Model):
 95          name = models.CharField(max_length=32)
 96 
 97         #创建一个表结构  用户信息表
 98       class User(models.Model):
 99          username = models.CharField(max_length=32)
100          email = models.EmailField()
101          user_type = models.ForeignKey("UserType")#外键 关联 UserType 表
102 
103       user_list = User.objects.all()#获取User表,所有记录
104       for obj user_list:
105          obj.username,obj.email,obj.user_type_id,obj.user_type.name,obj.user_type.id
106 
107       user = User.objects.get(id=1)#获取ID为1 的记录 为对象
108       user.
109 
110       User.objects.all().values("username","user_type__name",)#获取所有记录 的username 和 跨表的name
111 
112 
113 
114       class UserType(models.Model):
115          name = models.CharField(max_length=32)
116 
117         #创建一个表结构  用户信息表
118       class User(models.Model):
119          username = models.CharField(max_length=32)
120          email = models.EmailField()
121          user_type = models.ForeignKey("UserType")#外键 关联
122          m = models.ManyToMany('UserGroup')#与 UserGroup 的 第三张关联表 多对多
123 
124         #创建一个表结构  用户组表 多对多
125       class UserGroup(models.Model):
126          name = ....
127 
128 
129 
130       obj = User.objects.get(id=1)#获取记录对象
131       obj.m.add(2)#对第三张表进行添加关联
132       obj.m.add(2,3)
133       obj.m.add(*[1,2,3])
134 
135       obj.m.remove(...)#对第三张表进行删除关联
136 
137       obj.m.clear()#清除当前记录的所有关联关系
138 
139       obj.m.set([1,2,3,4,5])#设置关联  (重新所有的设置)
14
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机基础系列之何为操作系统 下一篇pexpect学习阶段

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目