教學視頻: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
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