今天测试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;
看样子是成功了,但原因是什么?求解释。