标签:prim creat list uniq meta cookies 类型 模板渲染 details
1.模板语言
变量 {{ error }}
循环 { %for item in class_list %} # queryset对象 < tr > < td > {{forloop.counter}} < / td > # id递增的增加 < td > {{item.pk}} < / td > # pk是主键的id < td > {{item.cname}} < / td > < td > <a href = "/edit_class/?pk={{ item.pk }}" > 修改 < / a > < a href = "/del_class/?pk={{ item.pk }}" > 删除 < / a > < / td > < / tr > { % endfor %}
模板渲染
render(request,‘inde.html‘,{‘ret‘:ret,‘ret2‘:ret2})
2.orm操作
models设置 pid = models.AutoField(primary_key=True) pname = models.CharField(max_length=32,unique=True) primary_key=True 设置为主键,相当于mysql里面的primary key max_length=32 设置长度,相当于mysql里面varchar()类型 unique=True 设置唯一,相当于mysql里面的unique 查询
print(models.User.objects,type(models.User.objects)) ----> demo.User.objects <class ‘django.db.models.manager.Manager‘>
1.all() ret = models.User.objects.all().order_by(‘pk‘) # 查找所有的数据。并按照主键id排序 print(ret,type(ret)) -----> ret = models.User.objects.all().order_by(‘pk‘) all():查询出来的是queryset类型的对象列表,可以通过render()方法渲染到前台页面
2.filter()
ret1 = models.User.objects.filter(pk=1) # 根据条件过滤
print(ret1, type(ret1)) ---> <QuerySet [<User: User object>]> <class ‘django.db.models.query.QuerySet‘>
filter(): 查询出来对象进行过滤,也是queryset对象。只有queryset类型的才能在前端进行for循环渲染
3.get()
ret = models.User.objects.get(username=user, ) # 找不到就报错 找到多个也报错
print(ret,type(ret)) ---> User object <class ‘demo.models.User‘>
增加
# 方式一 ret = models.Publisher.objects.create(name=pub_name) # 方式二 obj = models.Publisher(name=pub_name) obj.save()
删除
pk = request.GET.get(‘pk‘) query = models.Publisher.objects.filter(pk=pk) # 对象列表 query.delete() # 通过queryset 删除 query[0].delete() # 通过单独的对象 删除
修改
obj = models.Publisher.objects.filter(pk=pk).first() # 对象列表中第一个对象 obj.name = pub_name # 内存中修改 obj.save() # 提交
3.request和response对象
request对象 所有客户端请求数据集合,是一个对象,里面有各种方法 request.GET.get(‘username‘) 其中GET获取到的是字典 request.POST.get(‘username‘) 其中POST获取到的是字典 request.scheme 代表请求的方式 https/http request.path 请求的路径 /login/index.html request.encoding 提交的编码方式 request。COOKIES 包含所有的cookie request.META 一个标准的pyton字典,包含http首部 reuqest.user 一个AUTH_USER_MODEL类型的对象,表示当前登录的用户 request.session 一个可读可写的字典对象,表示当前会话
name = request.GET.get(‘username‘)
request.GET:是一个数组,里面有所有客户端请求数据集合
get(‘username‘,‘xxxx‘):是数组的get方法,如果没有会报错,一般可以设置默认值xxxx
4.models.py里面的__str__方法的使用
from django.db import models # Create your models here. class Publish(models.Model): pid = models.AutoField(primary_key=True) pname = models.CharField(max_length=32,unique=True) paddress = models.CharField(max_length=64)
def __str__(self): return "{} {}".format(self.pid,self.pname,self.paddress)
很多时候我们自己编写一个类,在将它的实例在终端上打印或查看的时候,我们往往会看到一个不太满意的结果。
类默认转化的字符串基本没有我们想要的一些东西,仅仅包含了类的名称以及实例的 ID (理解为 Python 对象的内存地址即可)。虽说这总比没有好,但确实是没什么用处啊。
class user():
def __init__(self,name,age):
self.name = name
self.age = age
def __str__(self):
return ‘{}今年{}岁‘.format(self.name,self.age)
类的 __str__ 方法会在某些需要将对象转为字符串的时候被调用
lala = user(‘kobe‘,18) ---> 如果不加上__str__()的话,print(lala)会打印出实力化的地址,加上的话会打印出‘kobe今年18岁‘
pass
# 不管怎么写都能拿到主键的名字
标签:prim creat list uniq meta cookies 类型 模板渲染 details
原文地址:https://www.cnblogs.com/p0st/p/11402791.html