1. 程式人生 > >django的命令, 配置,以及django使用mysql的流程

django的命令, 配置,以及django使用mysql的流程

1.Django的命令:

  1. 下載

    1. pip install django==1.11.16

    2. pip install django==1.11.16 -i 源

  2. 建立專案

    1. django-admin startproject app01(專案名,這是專案的根目錄)

  3. 啟動專案

    1. cd 專案目錄下 找到manage.py

    2. python manage.py runserver # 127.0.0.1:8000

    3. python manage.py runserver 80 # 127.0.0.1:80

    4. python manage.py runserver 0.0.0.0:80 # 0.0.0.0:80

  4. 建立一個APP

    1. python manage.py startapp app名稱

    2. 註冊

  5. 資料庫遷移

    1. python manage.py makemigrations # 在app下的migrations資料夾下記錄 models的變更記錄

    2. python manage.py migrate # 將models的變更記錄同步到資料庫中

2.Django的配置

  1. 註釋一個CSRF的中介軟體 可以提交POST

  2. databases 資料庫

    1. ENGINE : mysql

    2. NAME : 資料庫的名稱

    3. HOST:主機的IP

    4. PORT:3306

    5. USER: 使用者名稱

    6. PASSWORD: 密碼

  3. 靜態檔案的配置

    1. STATIC_URL = '/static/' # 別名

    2. STATICFILES_DIRS = [

      ​ os.path.join(BASE_DIR,'static')

      ]

  4. app

    1. INSTALLED_APPS = [

      ​ 'app01' ,

      ​ 'app01.apps.App01Config'

      ]

  5. TEMPLATES 模板相關的配置

    1. DIRS [ os.path.join(BASE_DIR,'templates')]

3.Django使用mysql資料庫的流程:

  1. 建立一個mysql資料庫, 可以通過在你的資料庫互動式命令列中使用

    CREATE DATABASE database_name;

     

  2. 在settings中進行配置

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',   # 資料庫引擎mysql
            'NAME': 'bms2',       # 你要儲存資料的庫名,事先要建立
            'USER': 'root',      # 資料庫使用者名稱
            'PASSWORD': '',      # 密碼
            'HOST': 'localhost', # 主機
            'PORT': '3306',      # 資料庫使用的埠
        }
    }
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'bookmanager',
            'HOST': '127.0.0.1',
            'PORT': 3306,
            'USER': 'root',
            'PASSWORD': '',
    
        }
    }

     

  3. 在與settings同級目錄下的init的檔案中寫:
    import pymysql
    pymysql.install_as_MySQLdb()

     

  4. 在app下的models中寫類(models.Model)
    class Publisher(models.Model):  # app01_publisher
        pid = models.AutoField(primary_key=True)  # pid 主鍵
        name = models.CharField(max_length=32, unique=True)  # 出版社名稱
    
        def __str__(self):
            return self.name
    
    
    class Book(models.Model):
        title = models.CharField(max_length=32, unique=True)  # 書籍的名稱
        publisher = models.ForeignKey('Publisher', on_delete=models.CASCADE)  # 關聯了出版社
    
        def __str__(self):
            return self.title
    
    
    class Author(models.Model):
        name = models.CharField(max_length=32, unique=True)  # 作者的名字
        books = models.ManyToManyField('Book')  # 表示作者和書籍 多對多的關係
        # books = models.ManyToManyField('Book', through='Author_book',)  # 表示作者和書籍 多對多的關係

     

  5. 資料庫遷移的命令

    1. python manage.py makemigrations # 在app下的migrations資料夾下記錄 models的變更記錄

    2. python manage.py migrate # 將models的變更記錄同步到資料庫中