Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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_Import - Fatal编程技术网

Python 如何将脚本添加到Django应用程序?

Python 如何将脚本添加到Django应用程序?,python,django,django-models,import,Python,Django,Django Models,Import,我刚刚开始学习Django/Python。我创建了一个名为reddit_project的项目,其中有一个名为scraper的应用程序。我正在尝试使用我的models.py中的model链接,这样我就可以基于我在web_crawler.py中抓取的JSON创建记录。然而,Django一直告诉我,当我尝试在终端中运行web_crawler.py时,模块刮板不存在。如何正确导入Link类,以便在web_crawler.py中使用它 scraper/models.py: from django.db i

我刚刚开始学习Django/Python。我创建了一个名为reddit_project的项目,其中有一个名为scraper的应用程序。我正在尝试使用我的models.py中的model链接,这样我就可以基于我在web_crawler.py中抓取的JSON创建记录。然而,Django一直告诉我,当我尝试在终端中运行web_crawler.py时,模块刮板不存在。如何正确导入Link类,以便在web_crawler.py中使用它

scraper/models.py:

from django.db import models

# Create your models here.
class Link(models.Model):
  title = models.CharField(max_length=50)
  author = models.CharField(max_length=50)
  url = models.CharField(max_length=200)
  subreddit = models.CharField(max_length=200)
  upvotes = models.IntegerField()
  downvotes = models.IntegerField()
  posted_date = models.DateTimeField()
web_crawler.py

import requests
from bs4 import BeautifulSoup
from scraper.models import Link

website_url = 'http://reddit.com/.json'
response = requests.get(website_url)
reddit_json = response.json()
print(reddit_json)
树:


您应该使用Django shell在Django项目中运行脚本。您可以通过键入以下命令来启动shell:

python manage.py shell
当您在项目根目录中时,在OS命令提示符下。由于没有主方法,您可以只导入web_crawler.py:

>>> from scraper import web_crawler.py
也就是说,运行应该访问Django环境的脚本的更好方法是将其作为管理命令编写。这样,您就可以使用

python manage.py <mycommand>
python manage.py

有关详细信息,请参阅。

我正在shell中运行python web\u crawler.py,正如您所说,它在[4]:python web\u crawler.py文件“”,第1行python web\u crawler.py^SyntaxError:无效语法是否在设置中为已安装的应用程序添加了scraper。py?我明白了!有没有办法在这个shell中使用PDB进行调试?我以前没有尝试过,但是导入PDB,然后在shell中使用PDB.set_trace()。如果我想在Django shell之外运行这个脚本呢?有没有一种方法可以使用链接模型运行脚本?如果是,怎么做?若否,原因为何?
python manage.py <mycommand>