• 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('数据不存在')
    

      

        

  • 相关阅读:
    乱谈服务器编程
    set global slow_query_log引起的MySQL死锁
    一个由string使用不当产生的问题
    Hbase初体验
    浅谈SQLite——查询处理及优化
    ACID、Data Replication、CAP与BASE
    libevent源码分析
    浅析Linux Native AIO的实现
    vim7.2中文乱码解决方法
    伸展树的点点滴滴
  • 原文地址:https://www.cnblogs.com/lnrick/p/9601285.html
Copyright © 2020-2023  润新知