Django第二天笔记
生活随笔
收集整理的這篇文章主要介紹了
Django第二天笔记
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、安裝虛擬環(huán)境
安裝虛擬環(huán)境軟件
pip3 install virtualenv
安裝虛擬環(huán)境擴(kuò)展包
pip3 install virtualenvwrapper
配置家目錄下的環(huán)境配置文件 .bashrc,添加如下內(nèi)容
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
環(huán)境變量生效
source .bashrc
創(chuàng)建python3的虛擬環(huán)境
mkvirtualenv -p python3 py_django
注意:
所有的虛擬環(huán)境,都位于/home/python/下的隱藏目錄.virtualenvs下。
因?yàn)槲覀兣渲昧薟ORKON_HOME=$HOME/.virtualenvs
安裝django軟件
pip install django==1.8.2
報(bào)錯(cuò):
>>> import MySQLdb
Traceback (most recent call last):
?File "<stdin>", line 1, in <module>
ImportError: No module named 'MySQLdb'
pip install pymysql
2. 安裝完畢,打開(kāi)項(xiàng)目的_init_.py,添加如下兩行代碼:
import pymysql?
pymysql.install_as_MySQLdb()
3. 重新執(zhí)行
python manage.py migrate
注意:django 1.6版以下為python manage.py syncdb
二、render 使用詳解
render(參數(shù)1, 參數(shù)2,參數(shù)3)
參數(shù)2:必須是request
參數(shù)2: 調(diào)用的模板文件
參數(shù)3:給模板傳入的參數(shù)
注意:
參數(shù)3可有可無(wú)
三、django訪問(wèn)流程
1、用戶發(fā)起請(qǐng)求
2、url路由系統(tǒng)對(duì)請(qǐng)求關(guān)鍵字進(jìn)行分發(fā)
3、分發(fā)給對(duì)應(yīng)的views視圖函數(shù)hello
4、view視圖調(diào)用models文件去數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)
5、view視圖調(diào)用指定的template模板文件,
6、將獲取的數(shù)據(jù)填充到template文件中
7、通過(guò)模板標(biāo)簽變量名進(jìn)行指定位置數(shù)據(jù)填充
8、形成一個(gè)完整的web頁(yè)面,返回給用戶
模板文件:
不變的是 靜態(tài)文件內(nèi)容
變化的是 模板標(biāo)簽
四部分:
url路由:根據(jù)請(qǐng)求關(guān)鍵字,分發(fā)請(qǐng)求給對(duì)應(yīng)視圖函數(shù)
view視圖 :數(shù)據(jù)邏輯處理
1、根據(jù)用戶請(qǐng)求,調(diào)用models獲取對(duì)應(yīng)的數(shù)據(jù)
2、調(diào)用模板,填充數(shù)據(jù)
models模型:數(shù)據(jù)訪問(wèn)層,去數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)
templates模板:view獲取到的數(shù)據(jù)存放地方
Object 對(duì)象 -- models文件中定義的模型類對(duì)象
Relation 關(guān)系 -- 關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)表
Mapping 映射 -- 對(duì)象和數(shù)據(jù)表的一一對(duì)應(yīng)
實(shí)例對(duì)象 -- 一條完整數(shù)據(jù)記錄
模型類 數(shù)據(jù)庫(kù)表
類名 表名
屬性 字段
字段類型 字段屬性
第二層意思:轉(zhuǎn)換
模型類做的一個(gè)動(dòng)作 具體的sql語(yǔ)句
all() select * from ...
orm:
映射
轉(zhuǎn)換
字段類型:
四個(gè):布爾、整數(shù)、字符串(max_length)、日期
選項(xiàng):
null 針對(duì)于數(shù)據(jù)庫(kù)表的設(shè)計(jì)用的,用來(lái)判斷某個(gè)字段屬性是否為空
表設(shè)計(jì),段屬性
blank
針對(duì)于數(shù)據(jù)庫(kù)表的某條數(shù)據(jù)記錄用的,用來(lái)判斷某個(gè)字段值的是否為空
表記錄,值為空
default
針對(duì)于數(shù)據(jù)庫(kù)表的某條數(shù)據(jù)記錄用的,用來(lái)定義某個(gè)字段值的默認(rèn)值
表記錄,默認(rèn)值
操作分析:
all()
select * from
get()
select * from 。。。 where?
>>> b=BookInfo()
>>> b.btitle="你好帥,班長(zhǎng)666"
>>> from datetime import date
>>> b.bpub_date=date(2000,1,10)
>>> b.save()
b.btitle如果為空,那么這一個(gè)整體就是insert
b.btitle如果不為空,那么這一個(gè)整體就是update
delete()
delete from 。。。。
管理器:
默認(rèn)管理器:
默認(rèn)的名稱是objects
可以改名,以覆蓋的形式
books = models.Manager()
注意:
二者只能生存一個(gè)
自定義的管理器
1、更改(重寫(xiě))某個(gè)特殊類型屬性
2、增加一個(gè)特殊的屬性
注意:
自定義的管理器可以和默認(rèn)管理器同時(shí)存在
python當(dāng)中的兩種層級(jí)關(guān)系:
代碼中使用縮進(jìn)表示層級(jí)關(guān)系
文件間使用 . 表示層級(jí)關(guān)系
模板:
變量名標(biāo)簽:
{{變量名}}
循環(huán)標(biāo)簽
{%for 條件%}
執(zhí)行語(yǔ)句
{%endfor%}
python中的for
for 條件:
執(zhí)行語(yǔ)句
查詢集:
特性:
惰性
緩存
過(guò)濾器:
all() *****
select * from 。。。
filter() *****
select * from 。。。 where/limit
exclude()
order_by()
get() *****
select * from 。。。 where
條件查詢:
格式:屬性名稱__比較運(yùn)算符=值
等值和取反
等值exact
取反:.exclude()
模糊查詢
包含:
contains
范圍:
in
二分查詢:
gt lt gte lte
錨定查詢
startswith
endswith
日期
year、month、day、week_day、hour、minute、second
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
安裝虛擬環(huán)境軟件
pip3 install virtualenv
安裝虛擬環(huán)境擴(kuò)展包
pip3 install virtualenvwrapper
配置家目錄下的環(huán)境配置文件 .bashrc,添加如下內(nèi)容
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
環(huán)境變量生效
source .bashrc
創(chuàng)建python3的虛擬環(huán)境
mkvirtualenv -p python3 py_django
注意:
所有的虛擬環(huán)境,都位于/home/python/下的隱藏目錄.virtualenvs下。
因?yàn)槲覀兣渲昧薟ORKON_HOME=$HOME/.virtualenvs
安裝django軟件
pip install django==1.8.2
報(bào)錯(cuò):
>>> import MySQLdb
Traceback (most recent call last):
?File "<stdin>", line 1, in <module>
ImportError: No module named 'MySQLdb'
解決辦法:
1. 安裝pymsqlpip install pymysql
2. 安裝完畢,打開(kāi)項(xiàng)目的_init_.py,添加如下兩行代碼:
import pymysql?
pymysql.install_as_MySQLdb()
3. 重新執(zhí)行
python manage.py migrate
注意:django 1.6版以下為python manage.py syncdb
二、render 使用詳解
render(參數(shù)1, 參數(shù)2,參數(shù)3)
參數(shù)2:必須是request
參數(shù)2: 調(diào)用的模板文件
參數(shù)3:給模板傳入的參數(shù)
注意:
參數(shù)3可有可無(wú)
三、django訪問(wèn)流程
1、用戶發(fā)起請(qǐng)求
2、url路由系統(tǒng)對(duì)請(qǐng)求關(guān)鍵字進(jìn)行分發(fā)
3、分發(fā)給對(duì)應(yīng)的views視圖函數(shù)hello
4、view視圖調(diào)用models文件去數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)
5、view視圖調(diào)用指定的template模板文件,
6、將獲取的數(shù)據(jù)填充到template文件中
7、通過(guò)模板標(biāo)簽變量名進(jìn)行指定位置數(shù)據(jù)填充
8、形成一個(gè)完整的web頁(yè)面,返回給用戶
模板文件:
不變的是 靜態(tài)文件內(nèi)容
變化的是 模板標(biāo)簽
四部分:
url路由:根據(jù)請(qǐng)求關(guān)鍵字,分發(fā)請(qǐng)求給對(duì)應(yīng)視圖函數(shù)
view視圖 :數(shù)據(jù)邏輯處理
1、根據(jù)用戶請(qǐng)求,調(diào)用models獲取對(duì)應(yīng)的數(shù)據(jù)
2、調(diào)用模板,填充數(shù)據(jù)
models模型:數(shù)據(jù)訪問(wèn)層,去數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)
templates模板:view獲取到的數(shù)據(jù)存放地方
五、orm
Object 對(duì)象 -- models文件中定義的模型類對(duì)象
Relation 關(guān)系 -- 關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)表
Mapping 映射 -- 對(duì)象和數(shù)據(jù)表的一一對(duì)應(yīng)
實(shí)例對(duì)象 -- 一條完整數(shù)據(jù)記錄
模型類 數(shù)據(jù)庫(kù)表
類名 表名
屬性 字段
字段類型 字段屬性
第二層意思:轉(zhuǎn)換
模型類做的一個(gè)動(dòng)作 具體的sql語(yǔ)句
all() select * from ...
orm:
映射
轉(zhuǎn)換
字段類型:
四個(gè):布爾、整數(shù)、字符串(max_length)、日期
選項(xiàng):
null 針對(duì)于數(shù)據(jù)庫(kù)表的設(shè)計(jì)用的,用來(lái)判斷某個(gè)字段屬性是否為空
表設(shè)計(jì),段屬性
blank
針對(duì)于數(shù)據(jù)庫(kù)表的某條數(shù)據(jù)記錄用的,用來(lái)判斷某個(gè)字段值的是否為空
表記錄,值為空
default
針對(duì)于數(shù)據(jù)庫(kù)表的某條數(shù)據(jù)記錄用的,用來(lái)定義某個(gè)字段值的默認(rèn)值
表記錄,默認(rèn)值
操作分析:
all()
select * from
get()
select * from 。。。 where?
>>> b=BookInfo()
>>> b.btitle="你好帥,班長(zhǎng)666"
>>> from datetime import date
>>> b.bpub_date=date(2000,1,10)
>>> b.save()
b.btitle如果為空,那么這一個(gè)整體就是insert
b.btitle如果不為空,那么這一個(gè)整體就是update
delete()
delete from 。。。。
管理器:
默認(rèn)管理器:
默認(rèn)的名稱是objects
可以改名,以覆蓋的形式
books = models.Manager()
注意:
二者只能生存一個(gè)
自定義的管理器
1、更改(重寫(xiě))某個(gè)特殊類型屬性
2、增加一個(gè)特殊的屬性
注意:
自定義的管理器可以和默認(rèn)管理器同時(shí)存在
python當(dāng)中的兩種層級(jí)關(guān)系:
代碼中使用縮進(jìn)表示層級(jí)關(guān)系
文件間使用 . 表示層級(jí)關(guān)系
模板:
變量名標(biāo)簽:
{{變量名}}
循環(huán)標(biāo)簽
{%for 條件%}
執(zhí)行語(yǔ)句
{%endfor%}
python中的for
for 條件:
執(zhí)行語(yǔ)句
查詢集:
特性:
惰性
緩存
過(guò)濾器:
all() *****
select * from 。。。
filter() *****
select * from 。。。 where/limit
exclude()
order_by()
get() *****
select * from 。。。 where
條件查詢:
格式:屬性名稱__比較運(yùn)算符=值
等值和取反
等值exact
取反:.exclude()
模糊查詢
包含:
contains
范圍:
in
二分查詢:
gt lt gte lte
錨定查詢
startswith
endswith
日期
year、month、day、week_day、hour、minute、second
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的Django第二天笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python算法题----在列表中找到和
- 下一篇: 压缩可以卸载吗_番禺街坊注意!微信发送高