1. 程式人生 > >DAY71-Django框架(二)

DAY71-Django框架(二)

一、Django中app的概念

大學: ---------------專案
​ 資訊學院 ----------app01
​ 物理學院 ----------app02
強調:建立了app,要在setting.py配置檔案中註冊

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',#建立專案時就建立了app,預設樣式
    'app02',#手動註冊
]

二、模板的路徑設定

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]#模板路徑
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

三、靜態檔案的配置

STATIC_URL = '/static/'    #一般不要改
#建立一個static資料夾       一般不要改
STATICFILES_DIRS=[
        os.path.join(BASE_DIR, 'static'),  #建立的資料夾路徑(可以寫多個)
        ]

四、完整的登入功能

login.html
<!--action:提交到後臺的地址三種寫法:
    1.http://127.0.0.1:8000/login 直接指定路徑
    2./login/   推薦用
    3.空         當前頁面
-->
<!--methods的兩種提交方式:
    1.get:獲取資料,頁面,攜帶資料是不重要的資料(資料量有大小限制),提交的資料會在url中顯示,資料不安全
    2.post:往後臺提交資料,相對安全
-->
<form action="/login/" method="post">
    <p>使用者名稱:<input type="text" name="name" class="form-control"></p>
    <p >密碼:<input type="password" name="pwd" class="form-control">
    </p>
    <input type="submit" value="提交">
</form>

五、新手三件套

  1. render:返回頁,預設會去templates裡找,注意路徑
  2. redirect:重定向
  3. HttpResponse

本質:render和redirect都是返回HttpResponse的物件,是屬於HttpResponse的方法

六、orm介紹

1.ORM

​ 即Object Relational Mapping,全稱物件關係對映。
​ 優點:
​ 1.不用寫sql,不會sql的人也可以寫程式
​ 2.開發效率高
​ 缺點:
​ 1.可能sql的效率低

2.如何使用:

​ 1.如果連線mysql:在setting裡配置:

'default': {
    'ENGINE': 'django.db.backends.mysql',
    'HOST': '127.0.0.1',
    'PORT': 3306,
    'USER': 'root',
    'PASSWORD': 'admin',
    'NAME': 'lqz',
}

​ 2.在app下的__init__.py裡寫:

import pymysql
# 更換連線模組
# MySQLdb替換為pymysql
pymysql.install_as_MySQLdb()

3.django-orm:

​ 1.不能建立資料庫(需要手動建立資料庫)
​ 2.可以建立資料表
​ 3.可以建立欄位

4.資料庫遷移

​ 1.python3 manage.py makemigrations ----記錄一下資料庫的變化
​ 2.python3 manage.py migrate ----將變化同步到資料庫中