ImportError:没有名为blog Django的模块

时间:2018-02-05 14:44:14

标签: python django python-2.7 django-1.8

我是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'时,尝试runserver它给我错误ImportError:没有名为blog Django的模块

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

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

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

2 个答案:

答案 0 :(得分:2)

只应在 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'),
]

答案 1 :(得分:1)

在定义网址时应使用此语法:

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

另请注意,官方文档建议在命名您的网址模式时使用超级而非下划线:link

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