django配置

一個完整的請求流程:

  1. 啓動服務端,等待客戶端(用戶瀏覽器)來鏈接
  2. 在瀏覽器地址欄輸入url,與服務端建立鏈接,瀏覽器發送請求
  3. 服務端收到請求消息,解析請求消息,根據路徑和函數的對應關係,找到將要執行的函數
  4. 執行函數,打開html文件,進行字符串替換,得到了一個最終要執行的函數
  5. 按照http協議的消息格式要求,把html內容回覆給用戶瀏覽器(發送響應)
  6. 瀏覽器收到響應的消息之後,按照html的規則渲染頁面
  7. 關閉鏈接

 

本次使用django版本是1.11 lts長期版本

安裝

pip install django==1.11

創建項目

django-admin startproject mysite

 

 

項目的啓動

python manage.py runserver ip:端口  --> 指定ip和端口啓動
python manage.py runserver 端口     -->  指定端口啓動
python manage.py runserver         -->  默認在本機的8000端口執行

配置相關:

1.Templates(存放HTML文件的配置)

  • 在項目下新建templates目錄
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',
            ],
        },
    },
]

 

2.靜態文件(css/js/圖片)

  • 在項目下創建static目錄
STATIC_URL = '/static/'

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

 

3註釋掉setting.py中帶有csrf的那一行(大概45~47行)

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',
]

 

 

創建app

  • 方便我們在一個大的django項目中,管理實現不同的業務功能
python manage.py startapp myapp
  •  創建玩app還要告訴django
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp.apps.MyappConfig'
]

 

ORM

  • 不同的程序員寫的sql水平參差不齊
  • 執行效率也參差不齊

python語法    --自動翻譯-->   sql語句

類似於:

jquery            DOM

$("#d1")      --自動翻譯-->   document.getElementById("d1")

ORM的對應關係:

類       --->    數據表
對象     --->    數據行
屬性     --->    字段

 優點

  • 簡單,不用自己寫sql語句
  • 開發效率高

缺點

  • 記憶特殊語法
  • 相對於老司機寫的sql,執行效率有缺點

能做的事情:

  1. 操作數據表 ---> 創建表,刪除表,修改表(操作models.py中的字段)

  2, 操作數據行 ---> 數據的增刪改查

不能做的事情: 不能創建數據庫,(自己動手創建數據庫)

django的ORM詳細操作

Mac 推薦使用homebrew安裝mysql

brew install mysql

啓動停止和重啓數據庫服務

Brew services start mysql
Brew services stop mysql
Brew services restart mysql

1自己動手創建數據庫

create database django111

2在django項目中設置連接數據庫的相關配置(告訴django鏈接哪一個數據庫)/settings

DATABASES = {
    'default': {
        # 連接的數據庫類型
        'ENGINE': 'django.db.backends.mysql',
        # 數據庫的地址
        'HOST': '127.0.0.1',
        # 端口
        'PORT': '3306',
        # 數據庫名稱
        'NAME': 'django111',
        # 用戶
        'USER': 'root',
        # 密碼
        'PASSWORD': 'sunlizhao'
    }
}

 

3告訴django用pymysql代替默認的mysqldb來鏈接mysql

  • 在項目的__init__.py文件中,寫入如下:
import pymysql

pymysql.install_as_MySQLdb()

4,在app下面的models.py文件中定義一個類,這個類必須繼承models.Model

class UserInfo(models.Model):
    # 創建一個自增的主鍵字段
    id = models.AutoField(primary_key=True)
    # 創建一個varchar(20)的不爲空的字段
    name = models.CharField(null=False, max_length=20)

5執行兩個命令

#將改動記錄下來
python manage.py makemigrations

#去數據庫中執行
python manage.py migrate

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章