靜態檔案
預設情況下所有的 html 檔案都是放在 templates 資料夾內的。
什麼是靜態檔案
預設情況下**所用到的靜態檔案資源全部都會放到static資料夾下,django中需要手動建立這個資料夾,static 資料夾下面還可以建立其他的資料夾,將css、js檔案區分開來,為了更加方便的管理檔案。
css 資料夾
js 資料夾
font 資料夾
img 資料夾
bootstrap 資料夾
fontawesome 資料夾
靜態檔案的配置
在 mysite settings.py配置檔案中新增以下資訊:
static_url:訪問靜態檔案資源的介面字尾
staticfiles_dirs:靜態檔案所在的資料夾的路徑
static_url = '/static/' # 訪問靜態檔案的介面url路徑字尾,
staticfiles_dirs = [ # 靜態檔案資源存在的具體資料夾目錄
os.path.join(base_dir,"static"), # 將static檔案裡的內容暴露給使用者看
os.path.join(base_dir,"static1"), # 可以寫多個,從上到下查詢
] # 這樣客戶端通過url方式可以訪問你配置的靜態檔案資源。
靜態檔案動態繫結
我們在配置好這個靜態檔案配置後,需要在html中動態繫結,方便實用並且可以適應靜態檔案路徑變動
將bootstrap資料夾放入static資料夾中,html head標籤內引用以下內容。
注意:如果你的django專案中 debug 模式設定為false,那麼靜態檔案會報404,修改為true即可正常訪問(200)
form表單回顧
get請求
form表單預設是get請求,可以指定為post
那麼我們也可以指定他的請求方式是post
get請求特點:在url會顯示攜帶的資訊,資訊格式:路徑字尾/?***=***&yyy=***
get請求攜帶的資料不安全
get請求攜帶的資料大小有限制
通常get請求如果要攜帶引數的話只會攜帶一些不是很重要的資料
action引數
不寫,預設朝當前位址提交
只寫字尾的形式:index/
前期如果我們在朝後端提交post請求的時候,會出現403的情況,需要注釋掉配置檔案中一行內容。
'django.middleware.csrf.csrfviewmiddleware'
middleware = [
'django.middleware.security.securitymiddleware',
'django.contrib.sessions.middleware.sessionmiddleware',
'django.middleware.common.commonmiddleware',
# 'django.middleware.csrf.csrfviewmiddleware',
'django.contrib.auth.middleware.authenticationmiddleware',
'django.contrib.messages.middleware.messagemiddleware',
'django.middleware.clickjacking.xframeoptionsmiddleware',
在django中後端的檢視函式,無論是發的get請求還是post請求,都會執行檢視函式,預設處理的是get請求。
request方法初識
我們在檢視函式中定義的所有函式都必須有返回值,並且返回值都是httpresponse物件
request 的部分方法
request.method:獲取請求方式,返回的是純大寫的字串。
request.get:獲取使用者提交的get請求資料,返回的是列表套物件。
request.get.get():獲取列表中的最後乙個
request.get.getlist():獲取列表型別的資料
request.post:獲取使用者提交的post請求資料
request.post.get():獲取列表中的最後乙個
request.post.getlist():獲取列表型別的資料
django連線mysql資料庫
一、配置檔案配置
需要在settings.py配置檔案中配置 db.sqlite3
databases = {
'default': {
'engine':'django.db.backends.mysql',
'name':'day50',
'user':'root',
'password':'123',
'host':'192.168.32.130',
'port':3306,
二、告訴django使用pymysql
在專案名/應用名下的乙個__init__.py中寫
import pymysql
pymysql.install_as_mysqldb()
django中操作orm
orm簡介
orm 物件關係對映
python中 資料庫
類名 --> 表名
物件 --> 資料
物件.屬性 --> 字段對應的值
為什麼使用orm
能夠讓不會資料庫操作的人也能夠簡單方便的去運算元據庫
orm的缺點
封裝程度太高,有時候會出現查詢效率偏低的問題。
編寫models.py
我們在寫django專案的時候,最好乙個django專案就對應乙個資料庫。
class user(models.model):
# 如果不寫主鍵,缺省會新增乙個名為id的主鍵,並且這個主鍵是自增id
name = models.charfield(max_length=32)
pwd = models.integerfield()
資料庫遷移命令
編寫完models.py之後,我們要把表建立在mysql資料庫中,需要用到兩條命令
python3 manage.py makemigrations記錄將資料的修改
python3 manage.py migrate真正同步到資料庫中
只要修改了models.py中與資料庫相關的**,就必須重新執行上面兩條命令。
django中模型表字段的增刪改查
對資料庫中字段的修改,直接修改字段即可
如果是新增資料庫字段,要注意兩點:
要給新的字段設定乙個預設值
email = models.emailfield(default="[email protected]")
或者設定新的字段為空
phone = models.bigintergerfield(null=true)
如果要刪除資料字段,直接注釋對應的字段即可,注意刪除欄位也會把資料刪除
最後的最後,記得要執行資料庫的兩條遷移命令
1.python3 manage.py makemigrations # 將資料庫的修改 記錄到migrations檔案內
2.python3 manage.py migrate # 將修改操作真正的同步到資料庫中
django中模型表資料的增刪改查
增:user_obj = models.user.objects.create(username=username,password=password)
print(user_obj,user_obj.username,user_obj.password)
# create方法會有乙個返回值 返回值就是當前被建立的物件本身
刪:models.user.objects.filter(id=delete_id).delete()
批量操作 會將filter查詢出來的列表中所有的物件全部刪除
改:models.user.objects.filter(id=edit_id).update(username=username,password=password)
批量操作 會將filter查詢出來的列表中所有的物件全部更新
查:data = models.user.objects.filter(username=username)
filter返回的結果是乙個"列表",裡面才是真正資料物件
filer括號內可以放多個關鍵字引數 這多個關鍵字引數在查詢的時候 是and關係
user_list = models.user.objects.all()
結果是乙個"列表" 裡面是乙個個的資料物件
Django static靜態配置檔案
對於django來說靜態檔案一般交由web伺服器處理,django本身不處理靜態檔案。為了使django開發環境能夠處理靜態檔案,django有和生產環境不同的靜態檔案配置方式。django 版本 1.10 5.可以測試單獨通過url訪問靜態檔案 staticfiles dirs os.path.j...
Django整理 三 配置檔案 靜態檔案
專案常用配置 在專案的 setting.py 配置檔案中,進行專案相關配置的修改。1.base dir 當前專案的根目錄,django會依此來定位工程內的相關檔案,我們也可以使用該引數來構造檔案路徑。2.debug 含義 是否為除錯模式 開發模式 預設為true 作用 當debug為true時,如果...
靜態檔案配置
static url靜態檔案urlstatic root 靜態檔案根路徑,開發環境才用,收集所有靜態檔案,不能和staticfiles dirs 重合 django的settings中包含三個static相關設定項 static root static url staticfiles dirs st...