[Python] 創建一個Django專案

使用:Mac M1
Python 3.8
Django:3.2

建立環境

可參考:安裝virtualenv

進入env後,安裝及查看Django版本:

pip install django
pip list

建立專案

尋找一個位置,建立第一個專案:

django-admin startproject mydjango


創建的資料結構如下:

執行方式:

python manage.py runserver

若想更改默認端口:

python manage.py runserver 0.0.0.0:8899

執行成功如下圖:

開啟瀏覽器,輸入:

http://127.0.0.1:8000/

第一次運行,會看到下圖畫面:

停止方式:Control + C

此時,會多出現一個檔案db.sqlite3

Django主要提供了四種數據庫引擎:

  1. django.db.backends.postgresql
  2. django.db.backends.mysql
  3. django.db.backends.sqlite3
  4. django.db.backends.oracle

打開setting.py會看到默認引擎是sqlite3,

# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

MySQL設置方式:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangodb',
        'USER': 'root',
        'PASSWORD': '12345',
        'HOST': '127.0.0.1',
    }
}

如果需要更多的配置信息,可以指定配置文件:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS':{
            'read_default_file': '/path/to/my.cnf',
        },
    }
}

配置文件:

# my.cnf

[client]

databases = djangodb user = root password = 12345 default-character-set=utf8

PostgreSQL數據庫配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

初始化:

python manage.py migrate

創建應用程序

python manage.py startapp books

生成books,如下的資料結構

.
├── books
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mydjango
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
  • admin :網站管理設置
  • apps :註冊應用相關
  • migration :數據庫的升級文件包,會自動升級專案的數據庫
  • models :定義模型
  • tests :測試相關代碼
  • views :定義視圖函式

主要程式撰寫是在views及models

發佈留言