我正在寻找一个好心人,他可以提供一个非常基本的框架来使用 Google App Engine 运行 python 脚本。我已阅读文档,检查相关的 SO 问题,但我对 WebApp 格式迷失了。我想做的就是每周运行 6 次接受参数的 python 脚本或多个 python 脚本,以监听网站中的更改,然后将它们发布到 Firestore。
我了解 cron 格式和大部分配置文件。我一直困惑于如何安排项目的文件以及 url 的工作原理。
我所要求的只是一个关于如何有效运行 python 脚本的非常基本的示例。This是迄今为止我找到的最好的资源,但我无法真正理解该网站上的这段代码是怎么回事:
`#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
import feedparser
import time
class Item(db.Model):
title = db.StringProperty(required=False)
link = db.StringProperty(required=False)
date = db.StringProperty(required=False) class Scrawler(webapp.RequestHandler):
def get(self):
self.read_feed()
self.response.out.write(self.print_items())
def read_feed(self):
feeds = feedparser.parse( "http://www.techrepublic.com/search?t=14&o=1&mode=rss" )
for feed in feeds[ "items" ]:
query = Item.gql("WHERE link = :1", feed[ "link" ])
if(query.count() == 0):
item = Item()
item.title = feed[ "title" ]
item.link = feed[ "link" ]
item.date = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time()))
item.put()
def print_items(self):
s = "All items:<br>"
for item in Item.all():
s += item.date + " - <a href='" + item.link + "'>" + item.title + "</a><br>"
return s application = webapp.WSGIApplication([('/', Scrawler)], debug=True) def main():
run_wsgi_app(application) if __name__ == "__main__":
main() `
这是我尝试运行的 python 脚本,仅用于测试,使用 python3.7:
import sys
from datetime import datetime
import firebase_admin
from firebase_admin import firestore
app = firebase_admin.initialize_app()
db = firestore.client()
def hello_firestore(user_name):
db.collection('firestore_test').document('test').set({
'time': str(datetime.now()),
'user_name': user_name
})
if __name__ == "__main__":
try:
user_name = sys.argv[1]
except:
print('Error with the argument', file=sys.stderr)
try:
hello_firestore(user_name)
except:
print('Error accessing the database', file=sys.stderr)
sys.exit(0)
据我了解,我必须使用 Flask 或类似的东西才能使其工作,但我真的不明白它是如何工作的,我所要求的只是一个小样本和简短的解释,从那里我将添加两个和两个。
此致