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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值