繁体   English   中英

导入错误:没有名为博客 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”并尝试运行服务器时,它给了我错误 ImportError: No module named 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

settings.py中只应添加应用名称blog

设置.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 文档:链接

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

编辑:正如 Astik 所指出的,你不需要把logicmindblog.blog放在INSTALLED_APPS ,你可以只放blog

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM