使用python建立一个网站:笔记4 操作django自带的数据库sqlite

教学视频:2019最新Django全套教程【千锋Python】
【Python】最近更新:用户交互post通信【从零开始】Django建站+Vuejs前端

一、初始化sqlite数据库

默认在django里面已经配置了sqlite库;
先定义数据库;
数据库表的的定义;
1)
定义一个数据库表:

在models.py文件里面添加如下内容:

class Student(models.Model):
    s_name = models.CharField(default='',max_length=15)

此时再次连接数据库会出现报错:

SystemCheckError: System check identified some issues:

ERRORS:
App.Student.s_age: (fields.E210) Cannot use ImageField because Pillow is not installed.
        HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "python -m pip install Pillow".

系统检查错误:系统检查发现一些问题:



错误:

App.Student.s_age:(fields.E210)无法使用ImageField,因为未安装枕头。

提示:请访问https://pypi.org/project/Pillow/获取枕头,或运行命令“python-m pip install Pillow”。

解决方法如下:
Cannot use ImageField because Pillow is not installed.
在命令行中更新数据库即可:

pip install -i https://pypi.douban.com/simple/ Pillow

完成后再次连接数据库:

python manage.py makemigrations

显示成功:
Migrations for ‘App’:
App\migrations\0001_initial.py
- Create model Student
这是发现多了一个文件:是第一场库表
在这里插入图片描述

在命令行中输入:

python manage.py migrate

成功结果:

Operations to perform:
Apply all migrations: App, admin, auth, contenttypes, sessions
Running migrations:
Applying App.0001_initial… OK

2)
关于社区版pycharm没有database插件问题

3)
设置sqlite数据库库管理员账户:
打开控制台:

python manage.py createsuperuser

再次注册自己的账户密码,邮箱可以不填

用户名 (leave blank to use ‘29602’): tianxiaohua
电子邮件地址:
Password:
Password (again):
Error: Your passwords didn’t match.
Password:
Password (again):
密码长度太短。密码必须包含至少 8 个字符。
密码只包含数字。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

注册完成;

进入界面就可以看到自己的数据库了;
在这里插入图片描述
想要看到自己刚刚添加的数据库还需要再admin.py 文件中添加如下代码:

from .models import Student
# Register your models here.
admin.site.register(Student)

在这里插入图片描述
此时刷新浏览器中数据库管理界面就可以看到自己的数据库了!

二、对数据库实现增删改查

1)
首先实现在数据库内新增数据并且在网页上显示出来:
还是找到views文件,把原来新建立的index首页增加如下的内容:

在代码的第一行导入模型里面的数据库:

from App.models import Student

如图位置:

def index(request):
    student = Student() #在数据库表内定一条新的数据,这条数据的对象是student
    student.s_name = "tianxiaohua" #将student对象里面的s_name数据给赋值为tianxiaohua
    student.save() #把数据保存到数据库里面

    student = Student.objects.all() #建立一个新的对象用来存放数据库里面读取出来的数据
    for i in student: #读取出来的数据是一个字典,需要遍历字典来在终端里打印出所有数据
        print(i.s_name)

    context = {  #这是一个用来传递网站后端和前端的一个数据的变量
        "hobby":"playgemes",
        "students":student
    }
    return render(request,"index.html",context = context) #返回值中的context是可以显示在网页终端值,该值是一个字典

找到模板templates文件夹中的index.html文件,在里面新增如下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>6424无所不能</title>
</head>
<body>
    <ul>
        <li>今天天气真好</li>
        <li>适合睡觉!</li>
        <li>快速创建标签的方式是: 例如需要li标签 先打出 li 然后按下Tab</li>
        <hi>{{ hobby }}</hi>

    </ul>
    <ul>

        {%for student in students%}
            <li>{{student.s_name}}</li>
        {%endfor%}
    </ul>
</body>
</html>

此时刷新网页:http://127.0.0.1:8000/index/就会出现如下:
在这里插入图片描述
可见数据库以及成功被创建并且读取出来了
查看终端控制台也会发现数据库的内容被全部打印出:
在这里插入图片描述

解释:
其实在上述的代码的操作中就已经实现了数据的“增”和“查”的功能,每次刷新主页都会发现多一条数据,而把数据显示在网页上的过程也实现了查看数据库内容的操作。还可以通过查看数据库管理的方式进入admin链接里查看和更改数据库的内容!

2)
实现数据库的删除操作:
这里新建一个网页来专门实现数据库的一条数据的删除操作;
首先新建一条路由:

path('delete/',views.delete_student)

效果如下:
在这里插入图片描述

找到views.py文件,添加如下内容:

def delete_student(request):
    student = Student.objects.get(pk=4) #找到数据库里面第四条数据
    student.delete() #把该条数据删除掉
    return HttpResponse("student delete success")

在这里插入图片描述
保存后pycharm会重启服务器,来到浏览器输入网址:http://127.0.0.1:8000/delete/
打开网页后就已经实现了删除
打开数据库管理界面:http://127.0.0.1:8000/admin/App/student/
发现已经没有第四条数据了:
在这里插入图片描述
3)
更改数据库里面的数据;
这里还是选择新建立一个网页来操作数据库的内容:
找到urls.py文件,在里面增加下面的路由:

path('add/',views.add_student)

改完的效果如下:
在这里插入图片描述

找到views.py文件,在下面添加一个函数:

def add_student(request):
    student = Student.objects.get(pk= 2) #找到第2条数据
    student.s_name = '刘智' #把该条数据改变值
    student.save() #保存数据
    return HttpResponse("已经成功改名")

改完的效果如下:
在这里插入图片描述
保存后等待服务器重启,随后来到浏览器输入网址:http://127.0.0.1:8000/add/
在这里插入图片描述
已经改好数据库里面的数据,来到数据库管理网址:http://127.0.0.1:8000/admin/App/student/2/change/
在这里插入图片描述

2333333

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值