Globale Variable und Pythonflasche

Was ich tun möchte, ist nur das erste Ereignis von einer API anzuzeigen. Die Variable heißt "firstevent" und der Wert sollte auf der Webseite angezeigt werden. Aber firstevent befindet sich in einem Def, also ändere ich es in eine globale Variable und hoffe, dass es für verschiedene Funktionen verwendet werden kann. Es wird jedoch "NameError: globaler Name 'firstevent' ist nicht definiert" angezeigt. Das mache ich:

Definieren Sie eine globale Variable

global firstevent

Sende dieser Variablen einen zufälligen Wert, der es sein sollevents['items'][1]['end']

firstevent = 1

Anzeigen des Werts von firstevent auf der Website.

@app.route("/")
def index():
    return 'User %s' % firstevent

Ich bin mir nicht sicher, was gerade passiert. Vielleicht ist es ein Problem mit dem Anwendungsbereich? Ich habe viele Antworten online überprüft, kann aber immer noch keine Lösung finden.

Hier sind die Details (nicht der gesamte Code)

import os

# Retrieve Flask, our framework
# request module gives access to incoming request data
import argparse
import httplib2
import os
import sys
import json

from flask import Flask, request
from apiclient import discovery
from oauth2client import file
from oauth2client import client
from oauth2client import tools

from apiclient.discovery import build
from oauth2client.client import OAuth2WebServerFlow

import httplib2

global firstevent  
app = Flask(__name__)

def main(argv):
  # Parse the command-line flags.
  flags = parser.parse_args(argv[1:])

  # If the credentials don't exist or are invalid run through the native client
  # flow. The Storage object will ensure that if successful the good
  # credentials will get written back to the file.
  storage = file.Storage('sample.dat')
  credentials = storage.get()
  if credentials is None or credentials.invalid:
    credentials = tools.run_flow(FLOW, storage, flags)

  # Create an httplib2.Http object to handle our HTTP requests and authorize it
  # with our good Credentials.
  http = httplib2.Http()
  http = credentials.authorize(http)

  # Construct the service object for the interacting with the Calendar API.
  calendar = discovery.build('calendar', 'v3', http=http)
  created_event = calendar.events().quickAdd(calendarId='[email protected]', text='Appointment at Somewhere on June 3rd 10am-10:25am').execute()
  events = calendar.events().list(calendarId='[email protected]').execute()
  #firstevent = events['items'][1]['end']

  firstevent = 1
  #print events['items'][1]['end']

 # Main Page Route
@app.route("/")
def index():
    return 'User %s' % firstevent


# Second Page Route
@app.route("/page2")
def page2():
  return """<html><body>
  <h2>Welcome to page 2</h2>
    <p>This is just amazing!</p>
    </body></html>"""


# start the webserver
if __name__ == "__main__":
    app.debug = True
    app.run()

Antworten auf die Frage(1)

Ihre Antwort auf die Frage