Django學習筆記(一)Django基礎

##新建項目html

django-admin startproject my_site #會在當前目錄新建my_site目錄,可自行修改目錄名
django-admin startproject my_site . #會在當前目錄直接創建my_site項目

項目建立完成後,接着建立app。app至關於網站的功能,每一個app表明網站的一個或多個網頁。python

python managy.py startapp index
python managy.py startapp user

啓動服務器mysql

python manage.py runserver

<br> ##基本配置信息 ```python import ossql

主要經過os模塊讀取當前項目在系統的具體路徑,在項目建立時自動生成。通常狀況下無需更改。

Build paths inside the project like this: os.path.join(BASE_DIR, ...)

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))數據庫

Quick-start development settings - unsuitable for production

See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/

祕鑰配置,在項目建立時自動生成,主要用於重要數據的加密處理。通常狀況下無需更改。

SECRET_KEY = 'o017!*o4nd8(z$8)-n-i-%3c$y#8r2os@j8-#-9n47i2e6q005'django

調試模式。在開發調試階段應設爲True,在開發調試過程當中會自動檢測代碼是否發生更改,一判斷是否刷新重啓系統。

如項目部署上線,應將其設爲False,不然會泄露系統的相關信息。

DEBUG = True瀏覽器

域名訪問權限,設置可訪問的域名。當DEBUG爲True且此項爲空時,只容許localhost在瀏覽器訪問。

當DEBUG爲False時此項爲必填項,不然程序沒法啓動。若想容許全部域名訪問,可設ALLOWED_HOSTS = ['*']

ALLOWED_HOSTS = []服務器

App列表,告訴Django有哪些app。若是在項目中建立了app,必須在列表中添加

INSTALLED_APPS = [ 'django.contrib.admin', # 內置的後臺管理系統 'django.contrib.auth', # 內置的用戶認證系統 'django.contrib.contenttypes', # 記錄項目中全部model元數據 'django.contrib.sessions', # 用於標識當前訪問網站的用戶身份,記錄相關用戶信息 'django.contrib.messages', # 消息提示功能 'django.contrib.staticfiles', # 查找靜態資源路徑(靜態資源指在網站中不會改變的文件,如CSS文件、JavaScript文件、圖片等) 'index', # 本身定義的app 'user', ]session

######    在中文版中,「應用程序」對應於「application」,「應用」對應於「app」。在通常的 Web 開發中,這兩者幾乎沒什麼區別,可是在 Django 中兩者有一個明顯的區別:application 是指一個完整的 Web 程序,而 app 是指一個可複用的包,能夠「插入」其餘Django 應用程序中。
<br> 
##靜態資源
  靜態資源指在網站中不會改變的文件,如CSS文件、JavaScript文件、圖片等,這些文件的存放主要由settings.py配置,配置信息以下:

```python
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/

STATIC_URL = '/static/'

上述配置文件將靜態資源放在文件夾static,而static文件夾只能放在App裏面。瀏覽器輸入http://127.0.0.1:8000/static/01.png會顯示圖片。若把static文件夾放在根目錄會顯示404。若要放在根目錄,則要在settings.py中配置STATICFILES_DIRS屬性oracle

STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]

配置好之後在瀏覽器中輸入http://127.0.0.1:8000/static/01.png即會顯示圖片 <br> ##模板路徑 模板是一種特殊的html文檔,其嵌入了一些python能識別的變量和指令,程序解析這些指令,生成HTML網頁返回給用戶瀏覽。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',  #定義模板引擎,用於識別模板裏的變量和指令。
        'DIRS': [],        #設置模板所在路徑
        'APP_DIRS': True,  #是否在App裏查找模板文件
        'OPTIONS': {       #用於填充在RequestContext中上下文的調用函數,通常不作修改
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

模板配置通常配置DIRS便可。在項目的根目錄和index文件夾內分別建立templates文件夾,配置以下

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates'),
                    os.path.join(BASE_DIR, 'index/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',
            ],
        },
    },
]

<br> ##數據庫配置 Django提供四種數據庫引擎: 'django.db.backends.postgresql' 'django.db.backends.mysql' 'django.db.backends.sqlite3' 'django.db.backends.oracle' 默認使用Sqlite3數據庫 ```python # Database # https://docs.djangoproject.com/en/2.2/ref/settings/#databases

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }

若要使用MySQL,先安裝MySQL鏈接模塊mysqlclient(直接使用pip安裝便可),接着在MySQL新建數據庫

SHOW DATABASES; CREATE DATABASE my_db CHARACTER SET utf8;

而後在settings.py中進行配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'my_db',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'POST': '3306',
    }
}

<br> ##中間件 ```python MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ```

相關文章
相關標籤/搜索