您好,登錄后才能下訂單哦!
Django里面,管理數據庫和sqlarchemy類似,也是通過orm框架來實現的。所有的數據庫的建立,都是在model.py里面通過類來實現的。
首先看看如何創建一個單表:
a. 先定義一個類,繼承models.Model, 然后根據需求定義參數,這些參數的類型和變量后面會進一步闡述
models.py
from django.db import models class UserInfo(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=64)
b. 注冊app
settings.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01', ]
c.執行命令。 第一條命令會生成一個初始化文件,第二個命令會生成對應的表
python manage.py makemigrations python manage.py migrate
這樣,就在PyCharm自帶的sqlite數據庫里面成功的生成了一個app01_UserInfo的表。這個表默認會有一個自增的id作為主鍵,另外兩個字段是我們通過類創建的。
d. 如果希望使用mysql,因為Django默認使用了MySqldb模塊,這個在3.0版本里面不存在,會直接報錯。我們需要改為pymysql的模塊,方法如下:
在project同名文件夾下的__init__文件中添加如下代碼即可:
import pymysql
pymysql.install_as_MySQLdb()
2. 對于單表的增刪改查詢
查詢
獲取所有結果,獲取到的結果是一個QuerySet的類似列表的對象,每一個元素本身又是一個對象,包括了id,name,password等屬性。
obj = models.UserInfo.objects.all()
<QuerySet [<UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>, <UserInfo: UserInfo object>]>
可以通過filter進行過濾,相當于sql的where語句,因為結果也是QuerySet,因此需要再使用first()獲取第一個值
obj = models.UserInfo.objects.filter(id=nid).first()
增加
models.UserInfo.objects.create(username=u,password=p,user_group_id=3)
刪除,可以在filter的基礎上進行刪除
models.UserInfo.objects.filter(id=nid).delete()
修改,有兩種常見方式
第一個方式
models.UserInfo.objects.filter(id=nid).update(username=u,password=p)
第二個方式
obj=models.UserInfo.objects.filter(id=nid) obj.username=u obj.save()
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。