【问题标题】:ImportError: No module named blog DjangoImportError:没有名为博客 Django 的模块
【发布时间】:2018-07-15 10:56:49
【问题描述】:

我是 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

但是当我删除项目名称并添加 '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

【问题讨论】:

    标签: python django python-2.7 django-1.8


    【解决方案1】:

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

    【讨论】:

    • Hasibur,有帮助吗?你明白了吗??
    • 已经有init.py所有目录,如何运行修复这个错误。
    • 在主工程里面创建,主工程只有db.sqlite3manage.py这里放_init_.py
    • @MdHasiburRahaman,查看更新后的答案并关注。它会起作用的。
    • 另一个错误无法导入名称索引,我正在关注djangorocks.com/tutorials/how-to-create-a-basic-blog-in-django/…创建我的博客
    【解决方案2】:

    你应该在定义你的 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

    【讨论】:

    • 当我从 blog.views 导入索引、view_post、view_category 添加这一行时,同样的错误dpaste.com/04382AF
    猜你喜欢
    • 2017-06-17
    • 2012-10-21
    • 1970-01-01
    • 2021-01-28
    • 2020-09-07
    • 2018-02-05
    • 2015-07-20
    • 2018-07-28
    • 2023-03-27
    相关资源
    最近更新 更多