愚蠢+知足浪費了想象+努力 愚公+天才 己所不欲勿施於人css
Django的時間夠,有時間去整理之前的,老師說,每提問一個問題,好好想好好答,就像面試同樣!不如同窗答得好。html
做業:圖書管理,刪除的那個前端
怎麼記住?方法!長期!python
昨日回顧:mysql
csrf_token :程序員
是什麼: 防護站請求僞造面試
怎麼作:後端django去找一個隨機字符串sql
在加載的頁面隱藏了一個input標籤裏面有隨機字符串(html裏的{%csrf_token %}) 替換的,數據庫
其餘數據提交由於驗證碼不一樣,不經過,登陸不上django
模板(模板)繼承
寫一個模板
繼承語法{%extends 'xxx.html' %}
在模板裏寫一個{%block content%}{%endblock%}
被繼承的文件裏一樣寫{%block content%}{%endblock%}
保留:{{block.super}}
面試(流程要打出來,細節打不出來(沒事)程序員)
自定義過濾器(至多兩個參數)
有些效果加載不出來,就須要本身寫過濾器來實現功能
from Django import template register = template.Library() @register.filter {{}} {%%} 過濾標籤(多個參數) @register.simple_tag 調用 {%%} @register.inclusion_tag('html文件') def aaa(): return {'xx':"xxxx"} return mark_safe(‘標籤格式’) 正常a標籤的連接 給應用的html文件渲染 py文件的相同變量 又做爲一個組件給另外一個html顯示 from django.utils.safestring import mark_safe
靜態文件(打字熟練寫,手腕就不累了)
js、css、img 等都叫靜態文件,
靜態文件通常寫在全局,不寫在單個應用裏,要不每個應用都要配置。 STATIC_URL = /static/ 靜態文件的路徑STATICFILE_DIRS = [ os.path.join(BASE_DIR,'jingtaiwenjian'), ] (列表能夠寫多個) 靜態文件夾的名稱可能會變 , 可是別名不變 不來回改 不能暴露你的文件夾路徑 {% load static %} static 找別名 xx 別名找 路徑 寫了別名以後 Django默認不支持絕對路徑引入 {#不能這樣絕對路徑寫,由於Django規定,讓你不寫死,預留能夠更改的空間。更改別名,html文件不用改路徑#} <link rel="stylesheet" href="/jingtaiwenjian/css/indexcss.css"> 均可以 css <link rel="stylesheet" href="/static/css/indexcss.css"> <link rel="stylesheet" href="{% static "css/indexcss.css" %}"> js <script src="/static/js/indexjs.js"></script> img <img src="/static/img/1.png" alt="">
url 反向解析
url 反向解析的用法 <form action="{% url 'login' %} method="post"> {% csrf_token %} 用戶名 <input type="text" name="username"> <input type="submit"> </form> url(r'^userlogin', views.login,name='login')
view視圖反向解析的用法
views 的 from django.urls import reverse print(reverse('xx')) #'/index/' # 寫死了 # return redirect('/index/') # return redirect('/xx/') #'/index/' return redirect(reverse('xx'))# 也能夠 內置反向解析
靜態 : 靜態文件 html 模板文件
(object Relational Mapping)
大公司(200人以上): 專門的人作專門的事 ,每一個人的效率都高,就是要跨部門溝通(犧牲效率)
程序員要寫sql,必須通過審覈,徹底沒有問題,纔會運行(不會讓你跨職業)
(厲害的技術總監和架構師,都能hold住。很差的,隨便幹,實現功能就行)
小公司(多):都要作 (沒有對效率的要求(數據少))因此都要學
應用程序開發人員(開發)
數據庫管理人員 (dba)
數據庫開發(用c語言寫 能力很是強)
數據庫運維的(數據不丟失 效率高)
sql開發程序員 (dba來作 專寫sql語句 )
和python同樣的編程語言,只不過是專門操做數據庫的
視圖 封裝的 (數據庫和前端講10幾天,皮毛,數據庫是短板)
複雜的語句,即便寫出來了,運行也不好,專門的dba寫,效率又高,還不復雜
他們把服務端全都寫好,py開發者只要寫你的邏輯
pymysql --- cursor.excute(‘call p1()’) 直接使用存儲過程
cursor.fecthall()
對象關係映射 (python對應映射的是原生sql)
django內嵌orm
orm ---- django --> 翻譯成sql語句 數據庫再執 pymysql
mysql服務器
硬盤
sqlalchemy 和 orm同樣,只不過是獨立的,其餘框架引入就能用,和jinjia2同樣
python manage.py makemigrations
執行指令 , 把數據加載到0001
db
app01
下面的是app01內置的應用 只要應用就有model表
django內置的應用生成的表
把他生成(翻譯)對應的sql表
1 去表裏找一下有沒有過
2 而後執行
INSTALLED_APPS 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', # 不能註銷了 ,有什麼app,建立了什麼表 其餘的內置能夠不用 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config',
app01_book
app01_migrations 記錄models發生了哪些變化
db 中
有值狀況:不容許爲空尚未默認值 : 默認值 均可以改 (插入的)
沒值狀況: 能夠不用設置(加了一個新表)
刪表的時候,把migrations 中的 0001_initial 和 app01_book 都刪了
要不沒法更新
初始化問題: 庫刪了 記錄刪了 (都)
添加:
在更新一下models migrations 就有了2 add
python manage.py makemigrations #生成記錄,每次修改了models裏面的內容或者添加了新的app,新的app裏面寫了models裏面的內容,都要執行這兩條 python manage.py migrate #執行上面這個語句的記錄來建立表,生成的表名字前面會自帶應用的名字,例如:你的book表在mysql裏面叫作app01_book表
能夠切換各類 sql數據庫(爲何orm效率低,還這麼多人用)
auto_now 自動更新
auto_now_add 自動添加
把這個數據庫翻譯成另外一個的數據庫語句