1. 程式人生 > 其它 >vue使用postcss適配在chrome下瀏覽器字型偏大

vue使用postcss適配在chrome下瀏覽器字型偏大

MTV模型

  • Model: 和資料庫相關, 負責業務物件和資料庫物件(ORM)
  • Template: 放所有的html檔案, 通過模板語法將資料庫當中的資料渲染到頁面中, 以便在前端頁面展示
  • View: 負責業務邏輯, 並在適當的時候呼叫ModelTemplate

此外,Django還有一個urls分發器,它的作用是將一個個URL的頁面請求分發給不同的view處理,view再呼叫相應的Model和Template

Django基礎命令

1. 下載Django

pip install django==2.0.1  # 本文使用的django版本為2.0.1

2. 建立一個Django project

django-admin.py startproject mysite

會生成如下目錄結構

  • manage.py ----- Django專案裡面的工具,通過它可以呼叫django shell和資料庫等。
  • settings.py ---- 包含了專案的預設設定,包括資料庫資訊,除錯標誌以及其他一些工作的變數。
  • urls.py ----- 負責把URL模式對映到應用程式。

3. 進入project目錄建立一個應用

python3 manage.py startapp blog(應用名稱)

4. 啟動Django專案

python3 manage.py runserver  8080

5. 配置靜態檔案目錄

修改專案的settings.py, 加入STATICFILES_DIRS部分的程式碼

STATIC_URL = '/static/'               # 靜態檔案路徑別名, django對引用名和實際名進行對映,引用時,只能按照引用名來,                                       # 不能按實際名去找
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'statics')  # statics為實際目錄, 這個目錄的名字可以自定義
]

路由控制和分發(include)

專案全域性urls.py檔案

from django.urls import path,re_path,include    # re_path通過正則匹配路徑, include可以把請求分發到不同的app下的                                                 # url分發器
from app01 import views                         # 匯入應用app01的檢視檔案

urlpatterns = [
    # path('admin/', admin.site.urls),
    # path('timer/', views.timer),
    # 路徑(timer/)----------->檢視函式(views.timer)
    re_path(r'^articles/([0-9]{4})',views.articles), # 會給articles這個檢視傳入request和([0-9]{4})兩個引數, 所                                                      # 以articles這個檢視需要接收兩個引數
    path('login/', views.login),
    re_path(r'^',include('app01.urls'))
]

# 1 一旦匹配成功則不再繼續
# 2 若要從URL 中捕獲一個值,只需要在它周圍放置一對圓括號。
# 3 不需要新增一個前導的反斜槓,因為每個URL 都有。例如,應該是^articles 而不是 ^/articles。
# 4 每個正則表示式前面的'r' 是可選的但是建議加上。

app01下的urls, 由上一段程式碼的include分發到這裡

from django.contrib import admin
from django.urls import path,re_path,include
from app01 import views
urlpatterns = [
    re_path(r'^articles/([0-9]{4})',views.articles)
]

有名分組

在更高階的用法中,可以使用命名的正則表示式組來捕獲URL 中的值並以關鍵字 引數傳遞給檢視。

在Python 正則表示式中,命名正則表示式組的語法是(?P<name>pattern),其中name 是組的名稱,pattern 是要匹配的模式

from django.contrib import admin
from django.urls import path,re_path,include
from app01 import views

urlpatterns = [
    re_path(r'^articles/2003/$', views.special_case_2003),
    re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', views.article_detail),
]

這個實現與前面的示例完全相同,只有一個細微的差別:捕獲的值作為關鍵字引數而不是位置引數傳遞給檢視函式。例如:

/articles/2005/03/    
請求將呼叫views.month_archive(request, year='2005', month='03')函式
/articles/2003/03/03/ 
請求將呼叫函式views.article_detail(request, year='2003', month='03', day='03')。

在實際應用中,這意味你的URLconf 會更加明晰且不容易產生引數順序問題的錯誤 —— 你可以在你的檢視函式定義中重新安排引數的順序