Django连接腾讯云Mysql后对数据库进行 增、删、查、改 操作

萌新记录一下自己的学习过程和总结一下操作,当然能帮到和我一样的萌新那是再好不过的了。欢迎各位dalao指出错误。这些增删查改的方法我也是参考这位dalao的内容所总结的:

https://blog.csdn.net/qq_36272282/article/details/89421254

连接数据库:

详见:

https://blog.csdn.net/caattt/article/details/103372020

对数据库进行添加:

添加部分简单讲一下,具体的在上面的链接中也有
1、在models.py中(这里是创建名为chaxun的数据表,字段为hostname。这一步在连接数据库那就做好了的):

class chaxun(models.Model):
    hostname = models.CharField(max_length=20)

2、在app文件下创建forms.py:

from django import forms

class add5(forms.Form):
    j = forms.IntegerField()

做个表单提交到数据表,这里我的字符类型选的数字。

3、在views.py中:

from .forms import add5  #.forms就是创建的forms.py的名字,add5是创建的类的名字
from capp.models import chaxun  # 再关联到models模块中的名为chaxun的数据表

def biaodan2(request):
    if request.method == 'POST':  # 这些if判断是判断post的字符是否合理啥的,做练习的时候留的,可以不要
        form = add5(request.POST)
        if form.is_valid():
            j = form.cleaned_data['j']  # 这两句话
            chaxun.objects.create(hostname=j)  # 才是重点

    else:
        form = add5()
    return render(request, 'biaodan2.html', {'form': form})

4、在templates中创建一个biaodan2.html,随你叫啥,反正我叫这个,记得上面的return中的一致就行

body标签中:

<p>
    <form method='post'>
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="提交">
    </form>
</p>

5、在urls.py中:

    path('add5/', capp_views.biaodan2, name='biandan2'),

cmd输入进入项目目录后输入python manage.py runserver
进入127.0.0.1:8000/add5查看
在这里插入图片描述
结果啥的在上文提到的我的另一篇博客中,就不再赘述了。

对数据库进行查询:

还是沿用上文的内容
models.py中的

class chaxun(models.Model):
    hostname = models.CharField(max_length=20)

1、在views.py中:

def chaxun2(request):
    what1 = chaxun.objects.all()  # 取chaxun数据库中的所有内容
    what2 = cahxun.objects.get(id=1).hostname  # 取id为1,就是第一个的,字段是hostname的数据
    return render(request, 'chaxun.html', {'what1': what1, 'what2': what2})

2、在chaxun.html的body标签中:

    {% for i in what1 %}
        <p>{{ i.hostname }}</p>
    {% endfor %}
    -------上面的是查询全部,下面的是查询单个--------<br>
    {{ what2 }}

查询全部的时候得到的不是值,所以要用for循环提取值(貌似只能这样。如果有直接取值的方法请dalao告诉我qaq)
2019.12.20更新,在models.py中的对应class下
输入个def函数就可以提取到值了:

class city_number(models.Model):
    citydata = models.CharField(max_length=15)
    def __str__(self):
        return self.citydata

而提取单个的时候是详细说明了提取id=1的hostname字段,这种方法是直接提取的数据库的值,所以不用循环
3、在urls.py中:

    path('chaxun/', capp_views.chaxun2),

4、最后在项目下运行python manage.py runserver 打开127.0.0.1/chaxun

在这里插入图片描述

对原有的数据进行更改:

1、先去forms.py中创个新的类:

class updataa(forms.Form):
    new = forms.CharField(max_length=20)

接受新数据的输入框

2、在templates中创建个html,我的叫updata.html:
body中输入:

<form method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="提交">

</form>

主要是显示form这个输入框

3、在views.py中:

from .forms import updataa  # 引用forms的updataa模块,就是第一步中forms.py中创建的class updataa()
def up_data(request):
    if request.method == 'POST':
        form = updataa(request.POST)
        if form.is_valid():
            data = form.cleaned_data['new']
            # 把收到的参数赋值给data
            
            chaxun.objects.filter(id=1, hostname='lxh').update(id=1, hostname=data)
            # 更新方式1:找到chaxun库中,id=1,hostname='lxh'的字段,
            # update更新新的内容id=1, hostname=data
            
            what1 = chaxun.objects.get(id=1).hostname
            # 再查询一下是不是更改成功了
            return HttpResponse(what1)  # 把查询结果return在页面上
    else:
        form = updataa()

    return render(request, 'updata.html', {'form': form})

还有另一种更新方式:

newdata = chaxun.objects.get(id=1)
newdata.name = 'newlxh'
newdata.save()

4、在urls.py中:

    path('updata/', capp_views.up_data),

5、最后在项目下cmd输入命令python manage.py runserver
打开浏览器输入127.0.0.1/updata:
在这里插入图片描述
点击提交
在这里插入图片描述
可以看到return的是我们新输入的内容,确实更改了。
可以再看看数据库:
在这里插入图片描述
这时候在views.py中:

chaxun.objects.filter(id=1, hostname='lxh').update(id=1, hostname=data)

这个不是没有改变嘛,那么你如果又提交新的内容:
在这里插入图片描述
你会发现他还是
在这里插入图片描述
因为没有id=1且hostname=lxh的数据了,那他就不会更改数据,所以再通过这个思路稍加更改就可以做到用户输入账号密码,然后进行更改账号密码的操作了

对数据库进行删除:

不多赘述了:

1、删除指定内容:
删除ID=1,且hostname=你输入的内容的那条数据

chaxun.objects.filter(id=1, hostname=data).delete()

或者:

deldata = chaxun.objects.get(id=1)
deldata.delete()

filter和get的括号内填写的都是你数据库实际的字段和对应的数据,这样才能找到相应数据并操作嘛,可不要就照抄了

2、删除所有内容:

chaxun.objects.all().delete()

———————————————————————————

差不多就这些吧,只是作为个人笔记记录,我也是个萌新,有错误请各位dalao指出。如果能够帮到像我一样迷惑的萌新那就太好啦

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值