Django对MySQL数据库的增删查改

Django + MySQL的增删查改

本项目只有代码的呈现,并不包括环境的调试以及数据库的连接等等。

本栏主要介绍Django对MySQL数据库的增删查改操作

models.py:

class Message(models.Model):
    text1 = models.CharField(max_length=256, verbose_name='链接')
    text2 = models.CharField(max_length=256, verbose_name="文字")
    
    def to_dict(self):
        return {
            'text1': self.text1,
            'text2': self.text2,
        }

增加操作:

views.py:

def message_add(request):
    # 定义一个增加函数
    if request.method == 'POST':
        # 如果是POST请求方式,就获得text1和text2
        text1 = request.POST.get('text1')
        text2 = request.POST.get('text2')
        models.Message.objects.create(
            # create添加数据
            text1=text1,
            text2=text2
        )
    return redirect('/message/')
    # 调用函数message

def message(request):
    # 显示函数-显示数据信息
    messages = models.Message.objects.all()
    # 从数据库中获取数据保存在字典中
    return render(request, 'index/message.html', {'messages': messages})
    # index/message.html展示的页面,{'messages': messages}字典
index/message.html

    
{% csrf_token %} {% for foo1 in messages %} {% endfor %}
资讯链接 资讯标题
{{ foo1.text1 }} {{ foo1.text2 }}
{% csrf_token %}
资讯链接 资讯标题

删除:

views.py

def message_delete(request):
    # 定义一个删除函数
    message_id = request.GET.get('id')
    # 从前端获取id
    line = models.Message.objects.get(id=message_id)
    # 删除id=message_id那条数据
    line.delete()
    return redirect('/message/')
    # 调用显示函数,对应的前端代码在    index/message.html

修改:

views.py

def message_jump(request):
    # 当你点击前端的修改按钮是,调用该函数
    messages_id = request.GET.get("id")
    # 获得id
    request.session['messages_id'] = messages_id
    # 将该id缓存起来
    return redirect('/message_page/')
    # 调用函数


def message_page(request):
    return render(request, 'index/message_update.html')
    # 跳转修改页面

def message_update(request):
# 修改函数
    message_id = request.session['messages_id']
    if request.method == 'POST':
        text1 = request.POST.get('text1')
        text2 = request.POST.get('text2')
        models.Message.objects.filter(id=message_id).update(
        #当id = 缓存的id时候,进行update修改
            text1=text1,
            text2=text2
        )
        return redirect('/message/')

对应的修改的界面:

'index/message_update.html'

    
资讯链接 资讯标题

查找:

注意在models.py中定义的函数to_dict
models.py

class Message(models.Model):
    text1 = models.CharField(max_length=256, verbose_name='链接')
    text2 = models.CharField(max_length=256, verbose_name="文字")
    
    def to_dict(self):
        return {
            'text1': self.text1,
            'text2': self.text2,
        }
views.py

def search(request):
    if request.method == 'POST':
        text1 = request.POST.get('text1')
        text2 = request.POST.get("text2")
        search_dict = dict()
        if text1:
            search_dict['text1'] = text1
        if text2:
            search_dict['text2'] = text2

        text_order_info = PhoneInf.objects.filter(**search_dict)
        messages = [text_order.to_dict() for text_order in text_order_info]

        messages = {
            'messages ': messages 
        }
        return render(request, 'index/message.html', messages )

你可能感兴趣的:(Django,django,mysql,python)