Django學習(1)——python manage.py startapp app-name建立app報錯問題

來源:互聯網
上載者:User

標籤:報錯   代碼   pymysql   教程   app   init   tab   password   mysql   

作為一個剛接觸python的小白,開始學習Django註定前路漫漫,記錄一下學習過程中的問題和解決方案。

感謝“自強學堂”的無私奉獻,根據教程安裝了Django 1.9.12後,嘗試建立項目,此時使用python manage.py startapp app-name 一直無法建立app。錯誤的最後一行是“django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3”作為小白,直接百度了一下這句話,發現沒有sqlite資料庫。不對,我要串連的應該是mysql資料庫。

繼續百度。

Django中對資料庫的設定是在settings.py這個檔案中。開啟該檔案發現裡面主要的配置均帶有官網的連結,果斷上官網,找到資料庫配置如下:

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


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

 

根據官網的指導,將資料庫引擎改成mysql,並做了相關配置。

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        ‘NAME‘: ‘***‘,    #資料庫名
        ‘USER‘: ‘****‘,   #資料庫使用者名稱
        ‘PASSWORD‘: ‘*******‘,    #資料庫密碼
        ‘HOST‘: ‘127.0.0.1‘,
        ‘PORT‘: ‘3306‘,
    }
}

備份了原檔案並修改之後,嘗試執行python manage.py startapp app-name    繼續報錯。。。。“No module named MySQLdb” 。好吧我已經安裝了pymysql了,要不裝個MySQLdb吧。各種yum/pip  安裝不成功。不怎麼有耐心,主要是pymysql是mysqldb的升級版,應該可以用才對。

    繼續百度。

    找到方法。

 

在網站的__init__.py檔案中,添加如下代碼:

1 import pymysql2 pymysql.install_as_MySQLdb()

配置之後,執行python manage.py startapp app-name   不再報錯,開啟檔案夾,app已建立。問題解決。

Django學習(1)——python manage.py startapp app-name建立app報錯問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.