ImportError: No module named blog Django

ImportError: No module named blog Django

我是新手 python 我尝试在 django 中创建博客,当我尝试通过键入 python manage.py startapp blog 此命令创建模块时

python 版本:2.7 django-admin 版本:1.8

这是urls.py文件

url(r'^$', 'logicmindblog.blog.views.index'),
url(r'^blog/view/(?P<slug>[^\.]+).html', 'logicmindblog.blog.views.view_post', name='view_blog_post'),
url(r'^blog/category/(?P<slug>[^\.]+).html', 'logicmindblog.blog.views.view_category', name='view_blog_category'),

在 settings.py INSTALLED_APPS 中添加 'logicmindblog.blog' 并尝试 运行server 它给我错误 ImportError:没有名为 blog Django 的模块

但是当我删除项目名称并添加 'blog' 和 运行 服务器时,此迁移和管理工作正常,我可以添加博客,博客管理部分的类别

任何人都可以帮我解决这个问题, 提前致谢

logicmindblog/
├── blog
│   ├── admin.py
│   ├── admin.pyc
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── 0001_initial.pyc
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── __pycache__
│   │   └── __init__.cpython-35.pyc
│   ├── tests.py
│   ├── views.py
│   └── views.pyc
├── db.sqlite3
├── logicmindblog
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   └── settings.cpython-35.pyc
│   ├── settings.py
│   ├── settings.pyc
│   ├── urls.py
│   ├── urls.pyc
│   ├── views.py
│   ├── views.pyc
│   ├── wsgi.py
│   └── wsgi.pyc
├── manage.py
└── views
    ├── base.html
    ├── index.html
    ├── view_category.html
    └── view_post.html

只应在 settings.py

中添加应用名称 blog

settings.py

INSTALLED_APPS = [
    #Custom Apps
    'blog',
    . . .
    . . .

    #django apps
    'django.contrib.admin',
    'django.contrib.auth',
    . . . 
    . . . 
]

urls.py

from .views import index, view_post, view_category

urlpatterns = [
    url(r'^$', index, name='view-blog-index'),
    url(r'^blog/view/(?P<slug>[^\.]+).html', view_post, name='view-blog-post'),
    url(r'^blog/category/(?P<slug>[^\.]+).html', view_category, name='view-blog-category'),
]

定义 url 时应使用此语法:

from blog.views import index, view_post, view_category

urlpatterns = [
  url(r'^$', index, name='view-blog-index'),
  url(r'^blog/view/(?P<slug>[^\.]+).html', view_post, name='view-blog-post'),
  url(r'^blog/category/(?P<slug>[^\.]+).html', view_category, name='view-blog-category'),
]

查看有关此主题的 Django 文档:link

此外,请注意官方文档建议在命名 url 模式时使用连字符而不是下划线:link

编辑:正如 Astik 指出的那样,您不需要将 logicmindblog.blog 放在 INSTALLED_APPS 中,您可以只放置 blog.