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导入驱动程序