使用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(max_length=10)

此時再次連接數據庫會出現報錯:

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首頁增加如下的內容:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章