我想使用Django rest框架在python中声明新应用。
首先,我执行以下步骤:
cmd>django-admin startproject djrest .
cmd>cd djrest
cmd>django-admin startapp sarox
cmd>cd..
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql','NAME': 'sarox','USER': 'root','PASSWORD': '*******','HOST': 'localhost','PORT': '****',}
}
cmd>python manage.py migrate
cmd>python manage.py createsuperuser
cmd>py manage.py runserver 0.0.0.0:2281
然后我在Sarox_models.py
目录下的sarox
中声明了一个模型:
from django.db import models
class SaroxUsers(models.Model):
user_id = models.AutoField(db_column='User_id',primary_key=True) # Field name made lowercase.
salt = models.CharField(db_column='Salt',max_length=200,blank=True,null=True) # Field name made lowercase.
hash = models.CharField(db_column='Hash',null=True) # Field name made lowercase.
username = models.CharField(db_column='username',unique=True,max_length=15) # Field name made lowercase.
class Meta:
managed = False
db_table = 'sarox_users'
然后我将以下行添加到views.py
目录下的sarox
:
from djrest.sarox.Sarox_models import SaroxUsers
,然后在INSTALLED_APPS
文件的settings.py
配置类中创建一行。
这是我的INSTALLED_APPS
配置类:
INSTALLED_APPS = [
'sarox.apps.SaroxConfig',...
]
我的新应用在sarox/apps.py
from django.apps import AppConfig
class SaroxConfig(AppConfig):
name = 'sarox'
但是当我运行python manage.py runserver 0.0.0.0:2281
命令时,它会引发运行时错误:
E:\MyApps\Plot\djrest>python manage.py runserver 0.0.0.0:2281
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\threading.py",line 926,in _bootstrap_inner
self.run()
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\threading.py",line 870,in run
self._target(*self._args,**self._kwargs)
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\site-packages\django\utils\autoreload.py",line 54,in wrapper
fn(*args,**kwargs)
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\management\commands\runserver.py",line 109,in inner_run
autoreload.raise_last_exception()
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\site-packages\django\utils\autoreload.py",line 77,in raise_last_exception
raise _exception[1]
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\management\__init__.py",line 337,in execute
autoreload.check_errors(django.setup)()
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\site-packages\django\utils\autoreload.py",**kwargs)
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\site-packages\django\__init__.py",line 24,in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\site-packages\django\apps\registry.py",line 91,in populate
app_config = AppConfig.create(entry)
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\site-packages\django\apps\config.py",line 116,in create
mod = import_module(mod_path)
File "C:\Users\AMoha\AppData\Local\Programs\Python\Python37\lib\importlib\__init__.py",line 127,in import_module
return _bootstrap._gcd_import(name[level:],package,level)
File "<frozen importlib._bootstrap>",line 1006,in _gcd_import
File "<frozen importlib._bootstrap>",line 983,in _find_and_load
File "<frozen importlib._bootstrap>",line 953,in _find_and_load_unlocked
File "<frozen importlib._bootstrap>",line 219,in _call_with_frames_removed
File "<frozen importlib._bootstrap>",line 965,in _find_and_load_unlocked
ModuleNotFoundError: No module named 'sarox'
...
当我删除新行时,在'sarox.apps.SaroxConfig',
的{{1}}类配置中包含INSTALLED_APPS
,一切正常。
我的项目目录结构在这里:
你有什么主意吗?