萌新记录一下自己的学习过程和总结一下操作,当然能帮到和我一样的萌新那是再好不过的了。欢迎各位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指出。如果能够帮到像我一样迷惑的萌新那就太好啦