1. 程式人生 > 實用技巧 >Django框架之第二篇--app註冊、靜態檔案配置、form表單提交、pycharm連結資料庫、Django使用mysql資料庫、表字段的增刪改查、表資料的增刪改查

Django框架之第二篇--app註冊、靜態檔案配置、form表單提交、pycharm連結資料庫、Django使用mysql資料庫、表字段的增刪改查、表資料的增刪改查

本節知識點大致為:靜態檔案配置、form表單提交資料後端如何獲取、request方法、pycharm連線資料庫,django使用mysql資料庫、

表字段的增刪改查、表資料的增刪改查

一、建立app,建立之後一定要先去settings.py註冊

、靜態檔案配置

html檔案預設全部放在templates資料夾下

靜態檔案:就是前端已經寫好了的檔案我們拿過來可以直接使用 這些檔案都叫做靜態檔案

靜態檔案可以是:

  1.bootstrap一類的前端框架,已經寫好了的 2.圖片 3.css,js

static資料夾需要自己建立

靜態檔案預設全都放在static資料夾下

  static資料夾中會預設建立的子資料夾
  css資料夾 當前網站所有的樣式檔案
  js檔案 當前網站所有的js檔案
  img檔案 當前網站所有的圖片檔案
  其他(前端框架程式碼 第三方外掛程式碼...)

使用者可以訪問的資源都在url中,只有url中開設相關的資源你才能訪問到(******)

2、在settings.py檔案中

STATIC_URL = '/static/' (相當於一個令牌) 這個static不是資料夾的名字 而是介面字首
只要你想訪問靜態檔案中的資源 檔案路徑就必須用static開頭(在html頁面中head標籤中匯入css,js樣式路徑都要以static開頭,static後面的檔案路徑去下面的檔案路徑中查詢)
手動將static資料夾中所有的資源暴露給使用者
STATICFILES_DIRS = [
  os.path.join(BASE_DIR,'static'), # 真正的資料夾路徑
  os.path.join(BASE_DIR,'static1'), # 真正的資料夾路徑
  os.path.join(BASE_DIR,'static2'), # 真正的資料夾路徑
  os.path.join(BASE_DIR,'static3') # 真正的資料夾路徑
]

3、靜態檔案介面字首"動態解析" (html頁面css,js匯入) 防止需要重複更改匯入靜態檔案路徑

{% load static %}

<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>

利用解析器 動態獲取介面字首

三、form表單提交資料

1、表單提交方式

form表單預設是get請求,攜帶資料的方式是url問好後跟資料,這種方式資料不安全。

http://127.0.0.1:8000/login/?username=zekai&password=123

可以通過method改為post請求,改為post請求後,需要去settings檔案中註釋掉一箇中間件

form表單提交資料目的地action:(三種提交地址方式)
1.不寫的情況下 預設往當前地址提交
2.還可以寫字尾/index/(講專案常用這種)
3.還可以寫全路徑

2、檢視函式針對不同的請求方式,有不同的處理邏輯

request.method可以得到表單請求的兩種方式

1.檢視函式一般主要會先處理get請求,把頁面渲染出來,get獲取的資料也是一個大字典(get請求方式也能獲取到前端提交的資料)

2.post請求就是頁面表單提交的資料,可以把它當成一個大字典

request.POST資料格式

3、獲取表單傳遞的具體資料

比如傳遞的username和password值,有兩種方式

第一種方式:
username = request.POST.get('username')  #預設只取列表最後一個元素,所以取出來的資料是字串(用兩個name一樣input舉例)
第二種方式:
password = request.POST['password']   #不建議這種方式取值,取不到值就會報錯

GET

request.GET獲取前端get提交的資料(就類似於是一個大字典)
            取值
                request.GET.get('username')  # 雖然value是一個列表 但是預設只取列表最後一個元素,強烈不建議你使用中括號的形式取值
                
                # 如果想直接把列表全部取出(******)  比如獲取表單的愛好資訊,獲取多個
                request.GET.getlist('hobby')

POST

request.POST獲取前端post提交的資料(就類似於是一個大字典)
            取值
                request.POST.get('username')  # 雖然value是一個列表 但是預設只取列表最後一個元素
                # 強烈不建議你使用中括號的形式取值
                
                # 如果想直接把列表全部取出(******)
                request.POST.getlist('hobby')

四、pycharm連線資料庫

五、django使用mysql資料庫

1.django預設使用的是自帶的sqlite資料庫,如果你想讓它其他的資料庫 需要在settings配置檔案中配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'day51',
        'HOST':'127.0.0.1',
        'PORT':3306,
        'USER':'root',
        'PASSWORD':'root',
     'CHARSET':'utf8', } }

2.還要在專案名下的init檔案或者是應用名下的init檔案中告訴django不要使用預設的mysqldb連線mysql,而是使用pymysql

import pymysql
pymysql.install_as_MySQLdb()