Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 必须以电影实例作为第一个参数来调用unbound method put()意味着什么_Python_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Python 必须以电影实例作为第一个参数来调用unbound method put()意味着什么

Python 必须以电影实例作为第一个参数来调用unbound method put()意味着什么,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,首先 错误: ERROR 2011-04-22 23:25:15,513 __init__.py:395] unbound method put() must be called with Movie instance as first argument (got nothing instead) Traceback (most recent call last): File "C:\Program Files (x86)\Google\google_appengine\google\

首先

错误:

ERROR    2011-04-22 23:25:15,513 __init__.py:395] unbound method put() must be called with Movie instance as first argument (got nothing instead)
Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 515, in __call__
    handler.get(*groups)
  File "C:\Users\Jimenez\workspace\elmovieplace\src\script/crawl.py", line 86, in get
    getImdbData(year, findPatGamma, findPatGamma2)
  File "C:\Users\Jimenez\workspace\elmovieplace\src\script/crawl.py", line 66, in getImdbData
    movie.put()
TypeError: unbound method put() must be called with Movie instance as first argument (got nothing instead)
crawl.py:

import wsgiref.handlers
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
from urllib2 import urlopen
from Classes import Movie
import re

def getImdbData(year, findPatGamma, findPatGamma2):
    templistone = []
    templisttwo = []
    listIterator = []
    listIterator[:] = range(len(findPatGamma))
    for gi in listIterator:
        deltaUrl = findPatGamma[gi]
        deltaPage = urlopen(deltaUrl).read()
        print deltaUrl
        simpleone = (re.findall(re.compile("""id='hmovie'.*[^\n]src='|"(.*[^\n])'|".*[^\n]"""),deltaPage))[0]
        templistone.append(simpleone)
        simpletwo = (re.findall(re.compile("<title>Project Free TV - (.*) video</title>"),deltaPage))[0]
        templisttwo.append(simpletwo)

    movie = Movie
    url = 'http://www.imdbapi.com/?plot=full&t=' + findPatGamma2[0] + '&y=' + year
    imdbPage = urlopen(url).read()
    imdbValues, = re.findall(re.compile('{"Title":"(.*)","Year":"(.*)","Rated":"(.*)","Released":"(.*)","Genre":"(.*)","Director":"(.*)","Writer":"(.*)","Actors":"(.*)","Plot":"(.*)","Poster":"(.*)","Runtime":"(.*)","Rating":"(.*)","Votes":"(.*)","ID":"(.*)","Response":"(.*)"}'),imdbPage)
    movie.title = imdbValues[0]#done
    if imdbValues[1] == 'N/A':
        movie.rated = ''
    else:
        movie.rated = imdbValues[2]#done
    if imdbValues[3] == 'N/A':
        movie.releaseDate = 'jan 1 1990'
    else:
        movie.releaseDate = imdbValues[3]
    if imdbValues[4] == 'N/A':
        movie.tags = [];
    else:
        movie.tags = re.findall(re.compile('(\w*[^\s|,])'),imdbValues[4])#done
    if imdbValues[5] == 'N/A':
        movie.diector = ''
    else:
        movie.director = imdbValues[5],#done
    if imdbValues[6] == 'N/A':
        movie.writer = ''
    else:
        movie.writer = imdbValues[6],#done
    if imdbValues[7] == 'N/A':
        movie.actors = []
    else:
        movie.actors = re.findall(re.compile('(\w*[^\s|,])'),imdbValues[7])#done
    if imdbValues[8] == 'N/A':
        movie.description = ''
    else:
        movie.description = imdbValues[8]#done
    if imdbValues[9] == 'N/A':
        movie.pic = ''
    else:
        movie.pic = imdbValues[9]#done
    if imdbValues[10] == 'N/A':
        movie.length = 0
    else:
        movie.length = (60 * int((re.findall(re.compile('(.*) hrs .* mins'),imdbValues[10]))[0])) + int((re.findall(re.compile('.* hrs (.*) mins'),imdbValues[10]))[0])#done
    movie.uniqueID = imdbValues[13]#done
    movie.hostNames = templisttwo
    movie.hostUrls = templistone
    movie.put()
    return

class MyHandler(webapp.RequestHandler):
    def get(self):
        year = '2011'
        betaUrl = 'http://www.free-tv-video-online.me/movies/' + year + '/'
        betaPage = urlopen(betaUrl).read()
        patFinderBeta = re.compile('<td width="97%" class="mnlcategorylist"><a href="(.*)">')

        findPatBeta = re.findall(patFinderBeta,betaPage)
        listIteratorBeta = []
        listIteratorBeta[:] = range(len(findPatBeta))
        for bi in listIteratorBeta:
            gammaUrl = betaUrl + findPatBeta[bi]
            gammaPage = urlopen(gammaUrl).read()
            patFinderGamma = re.compile('<a href="(.*[^\n])" target="_blank" class="mnllinklist">')
            findPatGamma = re.findall(patFinderGamma,gammaPage)
            patFinderGamma2 = re.compile('<meta name="keywords"content="(.*)">')
            findPatGamma2 = re.findall(patFinderGamma2,gammaPage)
            getImdbData(year, findPatGamma, findPatGamma2)

        ip = self.request.remote_addr
        template_values = {
            'username': ip,
        }
        self.response.out.write(template.render('template\crawl.html', template_values))

def main():
    app = webapp.WSGIApplication([(r'.*', MyHandler)],debug=True)
    wsgiref.handlers.CGIHandler().run(app)

if __name__ == '__main__':
    main()
我看过一些帖子(换言之,我已经找了一天了),但我不知道我做错了什么

顺便说一句,把我的问题包起来并没有那么明显,我是个新手。

把它从

movie = Movie

您需要实际创建
Movie
类的一个实例,这就是
Movie()
所做的。(您收到的错误消息中的关键字是“
Movie
instance”。)

movie = Movie
movie = Movie()