Django SQlite 配置

Kon*_*Dos 4 python sqlite django

我刚刚开始学习 Django。我关于该框架的主要知识来源是 Rudolph Snellius、Jeff Forcier 和 Wesley Chun 所著的《Python Web Development with Django》一书。

你能向我解释一下如何在 Django 中使用 SQlite 吗?这本书已经有几年了,这就是为什么我在配置数据库时遇到一些问题。

我正确完成的第一步是使用命令创建一个应用程序./manage.py startapp blog,然后我将诗句添加mojprojekt到文件INSTALLED_APPS中的元组中setting.py。然后我必须添加诗句DATABASE_ENGINE = 'sqlite3'DATABASE_NAME = 'path to my project'settings.py

最后一步是运行命令./manage.py syncdb。之后我收到一个错误:

konrad@konrad-MS-7823:~/Documents/Django/mojprojekt$ ./manage.py syncdb
Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 328, in execute
    django.setup()
  File "/usr/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/lib/python2.7/dist-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/lib/python2.7/dist-packages/django/apps/config.py", line 119, in create
    import_module(entry)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named blog
konrad@konrad-MS-7823:~/Documents/Django/mojprojekt$ 
Run Code Online (Sandbox Code Playgroud)

如果你知道我哪里做错了,你能帮助我吗?

更新:这是我的应用程序定义:

    # Application definition

    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'mojprojekt.blog',

)
Run Code Online (Sandbox Code Playgroud)

这仍然给出相同的结果。

Geo*_*fin 13

根据您收到的堆栈跟踪,它看起来blog不在您的设置文件中。检查 settings.py 下INSTALLED_APPS并添加一个新条目'blog'

至于在最新版本的 Django 中设置数据库,您应该查看django 设置文档中的此页面。根据它,数据库设置的当前样式如下。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'mydatabase', # This is where you put the name of the db file. 
                 # If one doesn't exist, it will be created at migration time.
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 对于 sqlite 引擎,“NAME”实际上是一个路径,因此您可以将数据库放在文件中的任何位置。 (3认同)