日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Django第二天笔记

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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'

解決辦法:

1. 安裝pymsql
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ù)存放地方


五、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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。