ios django 连接mysql_Django---Django连接Mysql数据库
前面介紹了Django平臺的數(shù)據(jù)交互,這些數(shù)據(jù)都是在本地存放著,修改內(nèi)容或者重新啟動服務(wù),數(shù)據(jù)就消失了,如果我們把數(shù)據(jù)存放在數(shù)據(jù)庫中,不就保存了嗎?
Django數(shù)據(jù)庫
Django中自帶的也有數(shù)據(jù)庫(sqlite3),自帶的輕量級數(shù)據(jù)庫sqlite3,已經(jīng)完全夠了,當(dāng)然大家都很數(shù)據(jù)Mysql數(shù)據(jù)庫,我們也可以通過Django連接Mysql數(shù)據(jù)庫
連接Mysql數(shù)據(jù)庫
在文件settings,py文件下中找到以下配置信息,該信息為連接默認(rèn)數(shù)據(jù)庫(sqlite3)
#連接數(shù)據(jù)庫
DATABASES ={‘default‘: {‘ENGINE‘: ‘django.db.backends.sqlite3‘,‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
}
}
如果想要連接Mysql數(shù)據(jù)庫,我們可以進(jìn)行修改成以下參數(shù)
#配置MYsql數(shù)據(jù)庫
DATABASES ={‘default‘: {‘ENGINE‘: ‘django.db.backends.mysql‘,‘NAME‘: ‘test‘, #數(shù)據(jù)庫名稱,
‘HOST‘: ‘localhost‘, #主機(jī)地址
‘USER‘: ‘root‘, #數(shù)據(jù)庫用戶
‘PASSWORD‘: ‘821006052‘, #密碼
‘PORT‘: 3306 #mysql的端口默認(rèn)3306
}
}
數(shù)據(jù)庫已經(jīng)連接成功了。但是還需要安裝mysql插件mysqlclient
pip install mysqlclient
操作數(shù)據(jù)庫
在文件models.py下創(chuàng)建表名以及表字段
# model.py
#創(chuàng)建表名已經(jīng)表字段
from django.db importmodels#class名代表表名,models.Model固定寫法
classUser(models.Model):#username,password 表示創(chuàng)建字段名,長度為32
username = models.CharField(max_length=32)
password= models.CharField(max_length=32)
打開cmd,跳轉(zhuǎn)到項(xiàng)目目錄下執(zhí)行以下命令,同步數(shù)據(jù)庫
#同步數(shù)據(jù)庫python manage.py makemigrations
這個時候會看到項(xiàng)目中的migrations中自動生成了一個文件?0001_initial.py,?這個時候我們繼續(xù)執(zhí)行命令
# 創(chuàng)建數(shù)據(jù)庫表
python manage.py migrate
這個時候我們都已經(jīng)把數(shù)據(jù)庫全部創(chuàng)建完成了。
這個時候會創(chuàng)建一些Django自帶的表,如果不需要的話我們可以在sttings.py文件中進(jìn)行進(jìn)行屏幕
INSTALLED_APPS =[‘django.contrib.admin‘, #admin管理后臺站點(diǎn)
‘django.contrib.auth‘, #身份認(rèn)證系統(tǒng)
‘django.contrib.contenttypes‘, #內(nèi)容類型框架
‘django.contrib.sessions‘, #會話框架
‘django.contrib.messages‘, #消息框架
‘django.contrib.staticfiles‘, #靜態(tài)文件管理框架
‘Djtest‘, #項(xiàng)目應(yīng)用
]
添加數(shù)據(jù)到數(shù)據(jù)庫
前面工作已經(jīng)全部完成了,我們直接開始編寫代碼寫入數(shù)據(jù)庫中,這里還是使用上一篇數(shù)據(jù)交互的代碼完成。我們直接在視圖中進(jìn)行修改代碼
#views.py
defindex(request):if request.method == ‘POST‘:
username= request.POST.get(‘username‘)
password= request.POST.get(‘password‘)#將數(shù)據(jù)保存到數(shù)據(jù)庫
models.User.objects.create(username=username,password=password)return render(request, ‘index.html‘, {‘data‘:username})
這個地方需要注意前面寫的html接收的內(nèi)容,然后再返回給用戶瀏覽器,這里修改了index.html文件
# index.html
安靜博客樂園歡迎您,{{data}}最后工作了,啟動Django服務(wù),進(jìn)入到對應(yīng)的地址,輸入用戶名和密碼,點(diǎn)擊提交
提交過后,來到我們的數(shù)據(jù)庫中,進(jìn)行查看,數(shù)據(jù)是否提交(我這里輸入多次不同的數(shù)據(jù))
可以發(fā)現(xiàn)數(shù)據(jù)已經(jīng)全部都存到數(shù)據(jù)庫中了。這樣就可以把提交過的數(shù)據(jù)全部都保存在數(shù)據(jù)庫中,然而不會重啟服務(wù)器導(dǎo)致數(shù)據(jù)丟失了
其他數(shù)據(jù)庫連接信息配置
#連接 PostgreSQL
django.db.backends.postgresql#連接 mysql
django.db.backends.mysql#連接 sqlite
django.db.backends.sqlite3#連接 oracle
django.db.backends.oracle
總結(jié)
以上是生活随笔為你收集整理的ios django 连接mysql_Django---Django连接Mysql数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GO 切片实力踩坑
- 下一篇: java 继承作用_java三大特性之继