今天測試django的時候出了點問題,被坑慘了。
D:\pythonCode\django\mysite>django-admin.py startproject mysite
然后創建APP ,名稱叫mb
python manage.py startapp mb
目錄結構如下:
D:.
│ manage.py
│
├─mb
│ admin.py
│ models.py
│ models.pyc
│ tests.py
│ views.py
│ __init__.py
│ __init__.pyc
│
└─mysite
settings.py
settings.pyc
urls.py
wsgi.py
__init__.py
__init__.pyc
為了做測試,我創建一個非常簡單的model
修改mb->models.py,只有一個字段
from django.db import models
# Create your models here.
class Test(models.Model):
testField = models.TextField()
修改mysite->settings.py
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mysite.mb',
)
注:這時還要數據庫的地方我設置為
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'D:\\test.db',
}
}
執行數據庫測試時
manage.py sql mb
出現錯誤提示:
ImportError: No module named mb
明明我在settings.py中設置了,為什么沒有這個model呢?
我也不知道,百度了下,將mysite->settings.py
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mb',
)
這次,出現了
BEGIN;
CREATE TABLE "mb_test" (
"id" integer NOT NULL PRIMARY KEY,
"testField" text NOT NULL
)
;
COMMIT;
看樣子是成功了,但原因是什么?求解釋。
