python3 django連接mysql,同步表結構


第一步:安裝PyMySQ代替MySQLdb

pip3 install PyMySQL
然后在工程目錄的__init__.py中填寫下面兩句話
 
import pymysql
pymysql.install_as_MySQLdb()
 
 
問題:安裝過程中如果提示No module named 'MySQLdb'
 
解決方法:python3使用上面的方法替代MySQLdb
原因:python3中,不再使用MySQLdb包了

第二步:配置數據庫和INSTALLED_APPS(app下的settings.py)

配置數據庫
DATABASES = {

    'default': {
        'ENGINE': 'django.db.backends.mysql',#數據庫引擎
        'NAME': 'UITest',#數據庫名
        'USER':'root',#數據庫用戶名
        'PASSWORD':'123456',#數據庫密碼
        'HOST':'',#數據庫地址,默認localhost
        'PORT':'',#數據庫端口,默認3306
    }
}
 
配置INSTALLED_APPS
在INSTALLED_APPS下添加app名
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'webManage',
]

第三步:創建model.py

class后的是表名,繼承models.Model,下面寫表中的字段名,字段支持多種類型
 
from django.db import models

# Create your models here.

class page(models.Model):
    pageid=models.IntegerField().primary_key
    chinessname=models.CharField()
    englishname=models.CharField().unique
    pagedesc=models.CharField()

class elements(models.Model):
    elementid=models.IntegerField().primary_key
    pageid=models.ForeignKey(page)
    variablename=models.CharField().unique
    variabledesc=models.CharField()
    find_by_android_option=models.CharField()
    find_by_android_value=models.CharField()
    find_by_iOS_option=models.CharField()
    find_by_iOS_value=models.CharField()
 
更多關於models的使用,詳見官方文檔
 

第四步:同步數據庫文件

 檢查要修改的數據庫字段:python3 manage.py makemigrations
 
執行命令后,可以看到如下會修改的內容
同時會在app的migrations中生成一個000開頭的文件,文件內寫明了要進行的sql操作
 
 
修改數據庫:python3 manage.py migrate
然后在數據庫內會看到新增的表,表名為【app名_class表示的表名】,同時在django_migrations表中添加記錄
 
備注:如果settings.py中的INSTALLED_APPS沒有填寫當前app,找不到app下要同步的models文件
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM