首先django中使用mysql需要mysqlclient庫(kù)的支持如绸,windows下需要vs支持凡怎,可從http://www.lfd.uci.edu/~gohlke/pythonlibs/ 網(wǎng)站下載對(duì)應(yīng).whl文件殷蛇,然后pip安裝。
在django中配置mysql
django中默認(rèn)sqlite3數(shù)據(jù)庫(kù),將DATABASES中內(nèi)容配置如下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django', #數(shù)據(jù)庫(kù)名字
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'root'
}
}
之后執(zhí)行以下語(yǔ)句
python manage.py makemigrations
python manage.py migrate
在django中輸出sql語(yǔ)句
article = Article.objects.all()
print("sql: %s" % article.query)
創(chuàng)建mysql帳號(hào)
CREATE USER 用戶(hù)名 @'ip' IDENTIFIED BY '密碼'
修改mysql賬號(hào)權(quán)限
GRANT ALL PRIVILEGES ON . TO 用戶(hù)名@ip
第一個(gè)*表示數(shù)據(jù)庫(kù)凹耙,第二個(gè)表示表,*表示全部
創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE 數(shù)據(jù)庫(kù)名字
DEFAULT CHARSET utf8
COLLATE UTF8_GENERAL_Ci;
創(chuàng)建表
先選擇數(shù)據(jù)庫(kù)
use demo
CREATE TABLE 表名(name varchar(25));
或者
CREATE TABLE 數(shù)據(jù)庫(kù).表名(name varchar(25));
插入新數(shù)據(jù)
INSERT INTO 表 (字段1寨典, 字段2) VALUES (值1, 值2);
意為在表的字段1敢辩,字段2后面分別插入值1值2.
更新數(shù)據(jù)
UPDATE 表名字 SET 字段1='字符串', 字段2=數(shù)字
WHERE 字段1=值1, 字段2=值2;
把字段分別為值1,值2的改為‘字符串’, 數(shù)字
不加where表示把所有字段都改變
刪除數(shù)據(jù)
DELETE FROM 表名字
WHERE 字段名='字符串' AND 字段名2=數(shù)字;
限制返回
SELECT * FROM `blog_article` LIMIT 3 OFFSET 2
SELECT * FROM\ blog_article\
LIMIT 2麦射,3
兩條語(yǔ)句相等,第一句中l(wèi)imit 3 表示取前三個(gè)灯谣,offset 2表示跳過(guò)前兩個(gè)潜秋。第二句中l(wèi)imit 2,3表示跳過(guò)兩個(gè),取前三個(gè)胎许。
模糊搜索
q = request.GET.get("q", '')
article = Article.objects.filter(title_contains=q)
與上面django語(yǔ)句相同
SELECT * FROM `blog_article` WHERE `blog_article`.title LIKE BINARY '%搜索內(nèi)容%' (注意是單引號(hào)), %代表任意字符
精確查找
SELECT * FROM `blog_article` WHERE\ blog_article\
.title = '查找內(nèi)容'
多表聯(lián)查
SELECT * FROM `userprofile` INNER JOIN `user` ON (`userprofile.belong_to_id` = `user.id`) WHERE `user`.`username` = `admin`