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