django 表的增删改查

建立之前将app建立

1,首先进入django到settting进行配置:

  1,检查DIR

  2,引掉csrf

  3,在最后写入:

    staticfiles_dirs=[

  os.path.join(base_dir,'static)

    ]

  4,检查app:

      格式:app01.apps.App01Config    app名字.apps.APP名字config

2,建立static

3,建立数据库

  1,先有数据库

  2,setting中的:配置

      

````DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'book2',
'USER':'root',
'PASSWORD':'',
'HOST':'127.0.0.1',
'PORT':3306,
`    }
```}

   3,在setting中同级init  加

   import pycharm

    pycharm.install_as_MySQLdb()

  4,在models中写入表和字段:

    

      from django.db import models

    # Create your models here.
      class library(models.Model):
    id = models.AutoField(primary_key=True)
     name = models.CharField(max_length=32,unique=True)

   def __str__(self):
     return self.name

  5,进行两步操作:

    makemigratoins

    migrate

  

  在views中写入函数 

  在trmplates写入html

  将这两条在urls连接

   

在html取值

  {%for i in 列表%}

  {{forloop.conter}} 每个信息进行编号

  {{i.id}}取值

  a 标签中: href='/library/?id={library.id{}}'

函数:

  查:

  models.library.objects.all().order_by('id')
 增加:
  models.library.objects.create(name=add_name)
 删除:
  del_list.delete() #删除
  改: 
  edit_obj = list_name[0]   #取到的是对象
  edit_obj.name = obj_deit_name
  edit_obj.save() #保存
from django.shortcuts import render,redirect,HttpResponse
from app01 import models
# Create your views here.

def library_list(request):   #返回的是整个网页
    library_list_obj = models.library.objects.all().order_by('id')
    return render(request,'library_list.html',{'library_all':library_list_obj })
def add_library(request):#增加
    if request.method == 'POST':
        add_name = request.POST.get('new_name')#获取new_name的信息
        name_list = models.library.objects.filter(name=add_name)#获取数据库的信息
        if add_name and not name_list: #判断add_name是否存在 和查找数据库中的信息
            models.library.objects.create(name=add_name)
            return redirect('/library/')
        if not add_name:  #不存在时返回不为空
            return render(request,'add_library.html',{'err_name':add_name,'err_mag':'不能为空'})
        if name_list: #根据数据库进行判断
            return render(request,'add_library.html',{'err_name':add_name,'err_mag':'出版社重复'})
    return render(request,'add_library.html')


def del_library(request):
    del_id = request.GET.get('id')   #获取id 进行判断
    del_list = models.library.objects.filter(id=del_id)
    if del_list:
        del_list.delete() #删除
        return redirect('/library/')
    else:
        return HttpResponse('删除失败')

def edit_library(request): #进行修改
    edit_id = request.GET.get('id')  #打开页面进行获取时的值
    list_name = models.library.objects.filter(id=edit_id) #数据库进行取值
    print(list_name)
    err_msg=''   #为省略代码
    if request.method == 'POST':
        obj_deit_name = request.POST.get('edit_name') #post打出后的取值
        obj_name_list = models.library.objects.filter(name=obj_deit_name)  #进行判断
        print(obj_deit_name,obj_name_list)
        if obj_deit_name  and  list_name and not obj_name_list:
            edit_obj = list_name[0]   #取到的是对象
            edit_obj.name = obj_deit_name
            edit_obj.save() #保存
            return redirect('/library/')
        if obj_name_list:
            err_msg='出版社已存在'
        if not obj_deit_name:
            err_msg = '出版社不能为空'
    if list_name:
        obj_name = list_name[0]
        return render(request,'edit_library.html',{'err_mag':err_msg,'obj_name':obj_name })#改值返回页面
    else:
        return HttpResponse('数据不存在')

  

    

原文地址:https://www.cnblogs.com/lnrick/p/9601285.html