57

愚蠢+知足浪費了想象+努力 愚公+天才 己所不欲勿施於人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
  1. 靜態文件(打字熟練寫,手腕就不累了)

    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  模板文件

ORM

(object Relational Mapping)

公司人員劃分

大公司(200人以上): 專門的人作專門的事 ,每一個人的效率都高,就是要跨部門溝通(犧牲效率)

​ 程序員要寫sql,必須通過審覈,徹底沒有問題,纔會運行(不會讓你跨職業)

​ (厲害的技術總監和架構師,都能hold住。很差的,隨便幹,實現功能就行)

小公司(多):都要作 (沒有對效率的要求(數據少))因此都要學

應用程序開發人員(開發)

數據庫管理人員 (dba)

  • 數據庫開發(用c語言寫 能力很是強)

  • 數據庫運維的(數據不丟失 效率高)

  • sql開發程序員 (dba來作 專寫sql語句 )

    • 和python同樣的編程語言,只不過是專門操做數據庫的

    • 視圖 封裝的 (數據庫和前端講10幾天,皮毛,數據庫是短板)

    • 複雜的語句,即便寫出來了,運行也不好,專門的dba寫,效率又高,還不復雜

    • 他們把服務端全都寫好,py開發者只要寫你的邏輯

    • pymysql --- cursor.excute(‘call p1()’) 直接使用存儲過程

    • cursor.fecthall()

Django封裝mysql

對象關係映射 (python對應映射的是原生sql)

django內嵌orm

orm ---- django --> 翻譯成sql語句 數據庫再執 pymysql

  • 有翻譯 開發效率高了點 執行效率低了點 對效率要求高的話不能用的
  • 用原生sql,Django能夠操做一些原生 sql 的語句

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 自動添加

把這個數據庫翻譯成另外一個的數據庫語句

相關文章
相關標籤/搜索