Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法导入Django模型_Python_Django_Django Models_Beautifulsoup - Fatal编程技术网

Python 无法导入Django模型

Python 无法导入Django模型,python,django,django-models,beautifulsoup,Python,Django,Django Models,Beautifulsoup,我正在尝试使用模型从网站下载数据到数据库。我的项目结构: -backdjango -app[folder] -__pycache__[folder] -templates[folder] -__init__.py -settings.py -urls.py -views.py -wsgi.py -drivers[folder] -

我正在尝试使用模型从网站下载数据到数据库。我的项目结构:

    -backdjango
      -app[folder]
        -__pycache__[folder]
        -templates[folder]
        -__init__.py
        -settings.py
        -urls.py
        -views.py
        -wsgi.py
        -drivers[folder]
          -__pycache__[folder]
          -management[folder]
            -commands[folder]
              -create_drivers.py
          -migrations[folder]
          -__init__.py
          -admin.py
          -apps.pyc
          -models.py
          -tests.py
          -views.py
        -node_modules[folder]
        -static[folder]
        -venv[folder]
        -.babelrc
        -.eslintrc.js
        -db.sqlite3
        -manage.py
        -package-lock.json
        -package.json
        -Pipfile
        -Pipfile.lock
        -webpack.common.js
        -webpack.dev.js
        -webpack.prod.js
        -yarn.lock
我用的是Django,靓汤和网页包。我已经从下载了就绪配置。在drivers->models.py中,我有一个模型:

from  django.db import models

# Create your models here.
class Driver(models.Model):

    name=models.CharField(max_length=150)
在app->settings.py中,我已将“驱动程序”添加到已安装的应用程序中。我的问题在于驱动程序->管理->命令->创建_driver.py:

import re

import requests
from bs4 import BeautifulSoup

from django.apps import apps
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'backdjango.settings'
from drivers.models import Driver
from django.core.management.base import BaseCommand, CommandError



class Command(BaseCommand):
        

        def handle(self, *args, **options):
            self.save_to_db(name)

        def getDriver(self):
            r=requests.get(
                "http://www/formula1.com/en/drivers/lewis-hamilton.html")
            soup= BeautifulSoup(r.text, "html.parser")
            name= soup.find("h1",**{"class":"driver-name"}).contents[0]
            print(name)
            return Driver(name=name)

        def save_to_db(self,name):
            Driver.objects.name.save()    
            
根据来自drivers.models导入驱动程序的
,我收到消息
无法导入“drivers.models”pylint(导入错误)


我尝试了很多方法来解决这个问题,但在互联网上找不到任何帮助。

我会完全删除
app
文件夹,将其中的所有内容移动到父文件夹“backdjango”中

我会将drivers应用程序重命名为更符合逻辑的应用程序。一般项目的主题公式化了吗?然后可能会将应用程序命名为FormulaOne。这并不是必需的,但它将使您避免将来混淆
驱动程序
应用程序及其子模型
驱动程序

重构完成后,您需要迁移数据库以实例化数据库中的驱动程序模型

$python manage.py makemigrations

这将检测并生成驱动程序模型的迁移文件

$python manage.py migrate

这将检测新的未处理迁移文件并将其安装到数据库中

我会删除create_driver.py命令——这不是django向数据库添加新记录的正确方法。相反,请结合BeautifulSoup解析使用以下代码:

from FormulaOne.models import Driver

# Now, to get a driver:
result = Driver.objects.filter(name=name).first()

# To save a driver:
Driver.objects.create(name=name)

看起来您的
驱动程序
文件夹嵌套在另一个应用程序文件夹
应用程序
?您可以尝试这样导入:
从app.drivers.models导入驱动程序