Django裏面,管理數據庫和sqlarchemy相似,也是經過orm框架來實現的。全部的數據庫的創建,都是在model.py裏面經過類來實現的。python
首先看看如何建立一個單表:mysql
a. 先定義一個類,繼承models.Model, 而後根據需求定義參數,這些參數的類型和變量後面會進一步闡述sql
models.py數據庫
from django.db import models class UserInfo(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=64)
b. 註冊appdjango
settings.pysession
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01', ]
c.執行命令。 第一條命令會生成一個初始化文件,第二個命令會生成對應的表app
python manage.py makemigrations python manage.py migrate
這樣,就在PyCharm自帶的sqlite數據庫裏面成功的生成了一個app01_UserInfo的表。這個表默認會有一個自增的id做爲主鍵,另外兩個字段是咱們經過類建立的。框架
d. 若是但願使用mysql,由於Django默認使用了MySqldb模塊,這個在3.0版本里面不存在,會直接報錯。咱們須要改成pymysql的模塊,方法以下:ide
在project同名文件夾下的__init__文件中添加以下代碼便可:spa
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()