小编Spl*_*urk的帖子

使用scrapy访问Django模型:定义Django项目的路径

我是Python和Django的新手.我目前正在探索使用Scrapy来抓取网站并将数据保存到Django数据库中.我的目标是根据用户提供的域运行蜘蛛.

我写了一个蜘蛛,它提取我需要的数据,并在调用时将其正确存储在json文件中

scrapy crawl spider -o items.json -t json
Run Code Online (Sandbox Code Playgroud)

scrapy教程中所述.

我的目标是让蜘蛛成功地将数据保存到Django数据库,然后根据用户输入让蜘蛛运行.

我知道这个主题上存在各种帖子,例如: 链接1 链接2 链接3

但是我花了超过8个小时试图让它发挥作用,我假设我不是唯一仍然面临这个问题的人.我将尝试收集到目前为止我在这篇文章中获得的所有知识,以及希望稍后发布一个有效的解决方案.因此,这篇文章相当长.

在我看来,有两种不同的解决方案可以从Scrapy将数据保存到Django数据库.一种是使用DjangoItem,另一种是直接导入模型(如做在这里).

我并不完全了解这两者的优点和缺点,但似乎区别在于使用DjangoItem只是更方便和更短.

我做了什么:

我已经添加:

def setup_django_env(path):
    import imp, os
    from django.core.management import setup_environ

    f, filename, desc = imp.find_module('settings', [path])
    project = imp.load_module('settings', f, filename, desc)       

    setup_environ(project)

setup_django_env('/Users/Anders/DjangoTraining/wsgi/')
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

ImportError: No module named settings
Run Code Online (Sandbox Code Playgroud)

我在想我是以错误的方式定义了我的Django项目的路径?

我也尝试过以下方法:

setup_django_env('../../') 
Run Code Online (Sandbox Code Playgroud)

如何正确定义Django项目的路径?(如果那是问题)

python django django-models scrapy

33
推荐指数
2
解决办法
9905
查看次数

Expo:取消对未发布应用程序的 iPad 支持

总的来说,我对 React Native、Expo 和应用程序开发完全陌生。

我正在使用 Expo 专门为 iOS 构建一个 React Native 应用程序。我终于成功完成了一个令我满意的版本,并与用户进行了测试等。我现在花时间将所有必需的屏幕截图、文本、信息等添加到 App Store Connect,以便提交应用程序。在这样做的过程中,我了解到 iPad 应用程序屏幕截图是强制性的,我觉得这很奇怪。

后来我发现我的 App.json 文件中有“supportsTablet: true”,所以它期待 iPad 图片是有道理的。更改此内容并进行新构建并提交后,这仍然是一个要求。

谷歌了一下后,我发现不可能改变这一点: 从应用程序中删除iPad支持 iOS应用程序提交:删除iPad支持 iOS应用程序提交想要删除iPad支持

这引导我尝试将应用程序作为新提交上传。但我无法让它发挥作用。根据本文档: https ://developer.apple.com/library/archive/qa/qa1623/_index.html

我应该更改包标识符并重新上传。不过,在 expo.ios.bundleIdentifier 下的 app.json 中更改此设置不起作用,因为我刚刚收到一条错误消息,表明我之前已经上传了此应用程序。

我应该采取哪些步骤才能将应用程序重新上传为新提交,这样我就无法支持 iPad?

app-store react-native expo

6
推荐指数
2
解决办法
3287
查看次数

Python:基于变量的名称实例

我对Python和编程很新.

我正在制作一个基于终端的游戏作为练习项目.游戏将是一系列的房间和怪物.我的计划是制作这些课程的怪物和房间实例.我在整个游戏中创建了其中的一些,其中许多是基于玩家行为而动态创建的.

在创建新的怪物和房间时,我现在很难事先知道他们的名字.像这样:

class Monster(object):
    pass

Monster1 = Monster(something)
Run Code Online (Sandbox Code Playgroud)

必须知道运行前的实例名称似乎是一个笨拙的解决方案.我认为让变量跟踪怪物数量会更容易,然后动态创建实例名称.因此创建的第一个怪物实例将自动成为Monster1,下一个将是Monster2等.

像这样的东西:

class Monster(object):
    pass

monster_id = 0

def createMonster(monster_id)
monster_instance = "Monster" + str(monster_id)
monster_id += 1   
# The following is where i'm stuck. Basically I want to have the instance name be equal to   the content of monster_instance
(monster_instance) = Monster()
Run Code Online (Sandbox Code Playgroud)

所以问题是:如何在不知道实例运行时的名称的情况下创建类的实例?

我也想知道我是否很难让这个工作,因为我做了一些愚蠢的事情,这是一个更聪明/更优雅的方式.在任何情况下都非常感谢所有帮助和意见.

python

2
推荐指数
2
解决办法
165
查看次数

标签 统计

python ×2

app-store ×1

django ×1

django-models ×1

expo ×1

react-native ×1

scrapy ×1