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
    评论
Django 是一款基于 Python 的高效率、高可用性的 Web 开发框架,采用了 MVC 设计模式。其中 `model` 是 Django 中的重要组成部分,用于处理数据库操作。下面是一个简单的 Django Model 示例,展示如何创建模型以及对数据进行增删改查的操作。 ### 创建 Model 首先,我们需要在项目的 models.py 文件中定义一个模型类。例如: ```python from django.db import models class User(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) email = models.EmailField(unique=True) def __str__(self): return f"{self.first_name} {self.last_name}" ``` 在这个例子中,我们创建了一个名为 `User` 的模型,它包含了三个字段:名字、姓氏和电子邮件地址。每个字段都通过 `models.` 后面跟上其类型定义。 ### 定义管理器 在某些情况下,我们需要自定义查询过程,可以使用 `Manager` 来实现这一点: ```python class UserManager(models.Manager): def create_user(self, username, password, **extra_fields): if 'email' not in extra_fields: raise ValueError("The given email must be set") user = self.model(username=username, **extra_fields) user.set_password(password) user.save(using=self._db) return user ``` ### 运行迁移 在完成了模型定义之后,需要运行 migration 以便在数据库中创建对应的结构: ```bash python manage.py makemigrations python manage.py migrate ``` ### 操作数据 #### 添加数据(Create) 添加新用户到数据库中: ```python from myapp.models import User new_user = User.objects.create(first_name='John', last_name='Doe', email='john.doe@example.com') ``` #### 查询数据(Read) 获取所有用户: ```python users = User.objects.all() for user in users: print(user) ``` 查询特定条件下的用户,比如查找所有邮箱包含 'example.com' 的用户: ```python users_with_example_email_domain = User.objects.filter(email__icontains='@example.com') ``` #### 更新数据(Update) 更新用户信息: ```python updated_user = User.objects.get(id=new_user.id) updated_user.email = "new-email@example.com" updated_user.save() ``` #### 删除数据(Delete) 删除用户: ```python User.objects.get(id=new_user.id).delete() ``` ### 总结 以上就是关于 Django Model 增删改查的基本操作示例。Django 提供了强大的 ORM(Object Relational Mapping),使得开发者能够以一种面向对象的方式来操作数据库,极大地提高了开发效率并降低了出错的可能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值