Преглед на файлове

cleaned up code and added wheezy.web to .travis.yml

Keith Newman преди 10 години
родител
ревизия
adfa6b39f3
променени са 4 файла, в които са добавени 89 реда и са изтрити 209 реда
  1. 1 0
      .travis.yml
  2. 4 0
      frameworks/Python/wheezyweb/README.md
  3. 0 122
      frameworks/Python/wheezyweb/app-backup.py
  4. 84 87
      frameworks/Python/wheezyweb/app.py

+ 1 - 0
.travis.yml

@@ -124,6 +124,7 @@ env:
     - "TESTDIR=Python/pyramid"
     - "TESTDIR=Python/tornado"
     - "TESTDIR=Python/uwsgi"
+    - "TESTDIR=Python/wheezyweb"
     - "TESTDIR=Python/wsgi"
     - "TESTDIR=Racket/racket-ws"
     - "TESTDIR=Ruby/grape"

+ 4 - 0
frameworks/Python/wheezyweb/README.md

@@ -35,3 +35,7 @@ http://localhost:8080/queries?queries=2
 ### Update
 
 http://localhost:8080/updates?queries=2
+
+### Fortune
+
+http://localhost:8080/fortune

+ 0 - 122
frameworks/Python/wheezyweb/app-backup.py

@@ -1,122 +0,0 @@
-import os
-import sys
-from functools import partial
-from operator import attrgetter
-from random import randint
-
-from wheezy.http import HTTPResponse
-from wheezy.http import WSGIApplication
-from wheezy.routing import url
-from wheezy.web.handlers import BaseHandler
-from wheezy.web.middleware import bootstrap_defaults
-from wheezy.web.middleware import path_routing_middleware_factory
-
-from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy import create_engine, Column
-from sqlalchemy.types import String, Integer
-from sqlalchemy.orm import sessionmaker
-
-DBDRIVER = 'mysql'
-DBHOSTNAME = os.environ.get('DBHOST', 'localhost')
-DATABASE_URI = '%s://benchmarkdbuser:benchmarkdbpass@%s:3306/hello_world?charset=utf8' % (DBDRIVER, DBHOSTNAME)
-
-Base = declarative_base()
-db_engine = create_engine(DATABASE_URI)
-Session = sessionmaker(bind=db_engine)
-db_session = Session()
-
-if sys.version_info[0] == 3:
-	xrange = range
-
-def getQueryNum(queryString):
-	try:
-		int(queryString)
-		return int(queryString)
-	except ValueError:
-		return 1
-
-class World(Base):
-	__tablename__ = "World"
-	id = Column(Integer, primary_key=True)
-	randomNumber = Column(Integer)
-	def serialize(self):
-		return {
-			'id': self.id,
-			'randomNumber': self.randomNumber,
-		}
-
-class JsonHandler(BaseHandler):
-	def get(self):
-		return self.json_response({"message": "Hello, world!"})
-
-class DbHandler(BaseHandler):
-	def get(self):
-		db_engine.connect()
-		wid = randint(1, 10000)
-		world = db_session.query(World).get(wid).serialize()
-		return self.json_response(world)
-
-class QueriesHandler(BaseHandler):
-	def get(self):
-		queries = self.request.get_param("queries")
-		num_queries = getQueryNum(queries)
-		if num_queries < 1:
-			num_queries = 1
-		if num_queries > 500:
-			num_queries = 500
-		rp = partial(randint, 1, 10000)
-		get = db_session.query(World).get
-		worlds = [get(rp()).serialize() for _ in xrange(num_queries)]
-		return self.json_response(worlds)
-
-class UpdatesHandler(BaseHandler):
-	def get(self):
-		queries = self.request.get_param("queries")
-		num_queries = getQueryNum(queries)
-		if num_queries < 1:
-			num_queries = 1
-		if num_queries > 500:
-			num_queries = 500
-		worlds = []
-		rp = partial(randint, 1, 10000)
-		ids = [rp() for _ in xrange(num_queries)]
-		ids.sort() # To avoid deadlock
-		for id in ids:
-			world = db_session.query(World).get(id)
-			world.randomNumber = rp()
-			worlds.append(world.serialize())
-		return self.json_response(worlds)
-
-def plaintext(request):
-	response = HTTPResponse()
-	response.write("Hello, world!")
-	return response
-
-all_urls = [
-	url("plaintext", plaintext, name="plaintext"),
-	url("json", JsonHandler, name="json"),
-	url("db", DbHandler, name="db"),
-	url("queries", QueriesHandler, name="queries"),
-	url("updates", UpdatesHandler, name="updates")
-
-
-]
-
-options = {}
-
-main = WSGIApplication(
-	middleware = [
-		bootstrap_defaults(url_mapping=all_urls),
-		path_routing_middleware_factory
-	],
-	options = options
-)
-
-if __name__ == "__main__":
-	from wsgiref.simple_server import make_server
-	try:
-		print("Server started on http://localhost:8080")
-		make_server("", 8080, main).serve_forever()
-	except KeyboardInterrupt:
-		pass
-	print("\nStopping server...")

+ 84 - 87
frameworks/Python/wheezyweb/app.py

@@ -35,89 +35,89 @@ if sys.version_info[0] == 3:
 	xrange = range
 
 def getQueryNum(queryString):
-	try:
-		int(queryString)
-		return int(queryString)
-	except ValueError:
-		return 1
+  try:
+    int(queryString)
+    return int(queryString)
+  except ValueError:
+    return 1
 
 class Fortune(Base):
-	__tablename__ = "Fortune"
-	id = Column(Integer, primary_key=True)
-	message = Column(String)
+  __tablename__ = "Fortune"
+  id = Column(Integer, primary_key=True)
+  message = Column(String)
 
-	def serialize(self):
-		return {
-			'id': self.id,
-			'randomNumber': self.randomNumber,
-		}
+  def serialize(self):
+    return {
+      'id': self.id,
+      'randomNumber': self.randomNumber,
+    }
 
 class World(Base):
-	__tablename__ = "World"
-	id = Column(Integer, primary_key=True)
-	randomNumber = Column(Integer)
-	def serialize(self):
-		return {
-			'id': self.id,
-			'randomNumber': self.randomNumber,
-		}
+  __tablename__ = "World"
+  id = Column(Integer, primary_key=True)
+  randomNumber = Column(Integer)
+  def serialize(self):
+    return {
+      'id': self.id,
+      'randomNumber': self.randomNumber,
+    }
 
 class JsonHandler(BaseHandler):
-	def get(self):
-		return self.json_response({"message": "Hello, world!"})
+  def get(self):
+    return self.json_response({"message": "Hello, world!"})
 
 class DbHandler(BaseHandler):
-	def get(self):
-		db_engine.connect()
-		wid = randint(1, 10000)
-		world = db_session.query(World).get(wid).serialize()
-		return self.json_response(world)
+  def get(self):
+    db_engine.connect()
+    wid = randint(1, 10000)
+    world = db_session.query(World).get(wid).serialize()
+    return self.json_response(world)
 
 class QueriesHandler(BaseHandler):
-	def get(self):
-		queries = self.request.get_param("queries")
-		num_queries = getQueryNum(queries)
-		if num_queries < 1:
-			num_queries = 1
-		if num_queries > 500:
-			num_queries = 500
-		rp = partial(randint, 1, 10000)
-		get = db_session.query(World).get
-		worlds = [get(rp()).serialize() for _ in xrange(num_queries)]
-		return self.json_response(worlds)
+  def get(self):
+    queries = self.request.get_param("queries")
+    num_queries = getQueryNum(queries)
+    if num_queries < 1:
+      num_queries = 1
+    if num_queries > 500:
+      num_queries = 500
+    rp = partial(randint, 1, 10000)
+    get = db_session.query(World).get
+    worlds = [get(rp()).serialize() for _ in xrange(num_queries)]
+    return self.json_response(worlds)
 
 class UpdatesHandler(BaseHandler):
-	def get(self):
-		queries = self.request.get_param("queries")
-		num_queries = getQueryNum(queries)
-		if num_queries < 1:
-			num_queries = 1
-		if num_queries > 500:
-			num_queries = 500
-		worlds = []
-		rp = partial(randint, 1, 10000)
-		ids = [rp() for _ in xrange(num_queries)]
-		ids.sort() # To avoid deadlock
-		for id in ids:
-			world = db_session.query(World).get(id)
-			world.randomNumber = rp()
-			worlds.append(world.serialize())
-		return self.json_response(worlds)
+  def get(self):
+    queries = self.request.get_param("queries")
+    num_queries = getQueryNum(queries)
+    if num_queries < 1:
+      num_queries = 1
+    if num_queries > 500:
+      num_queries = 500
+    worlds = []
+    rp = partial(randint, 1, 10000)
+    ids = [rp() for _ in xrange(num_queries)]
+    ids.sort() # To avoid deadlock
+    for id in ids:
+      world = db_session.query(World).get(id)
+      world.randomNumber = rp()
+      worlds.append(world.serialize())
+    return self.json_response(worlds)
 
 class FortuneHandler(BaseHandler):
-	def get(self):
-		fortunes = db_session.query(Fortune).all()
-		fortunes.append(Fortune(id=0, message="Additional fortune added at request time."))
-		fortunes.sort(key=attrgetter("message"))
-		engine = Engine(loader=FileLoader(["views"]), extensions=[CoreExtension()])
-		template = engine.get_template("fortune.html")
-		for f in fortunes:
-			f.message = bleach.clean(f.message)
-		template_html = template.render({"fortunes": fortunes})		
-
-		response = HTTPResponse()
-		response.write(template_html)
-		return response
+  def get(self):
+    fortunes = db_session.query(Fortune).all()
+    fortunes.append(Fortune(id=0, message="Additional fortune added at request time."))
+    fortunes.sort(key=attrgetter("message"))
+    engine = Engine(loader=FileLoader(["views"]), extensions=[CoreExtension()])
+    template = engine.get_template("fortune.html")
+    for f in fortunes:
+      f.message = bleach.clean(f.message)
+    template_html = template.render({"fortunes": fortunes})		
+
+    response = HTTPResponse()
+    response.write(template_html)
+    return response
 
 def plaintext(request):
 	response = HTTPResponse()
@@ -125,30 +125,27 @@ def plaintext(request):
 	return response
 
 all_urls = [
-	url("plaintext", plaintext, name="plaintext"),
-	url("json", JsonHandler, name="json"),
-	url("db", DbHandler, name="db"),
-	url("queries", QueriesHandler, name="queries"),
-	url("updates", UpdatesHandler, name="updates"),
-	url("fortune", FortuneHandler, name="fortune")
-
+  url("plaintext", plaintext, name="plaintext"),
+  url("json", JsonHandler, name="json"),
+  url("db", DbHandler, name="db"),
+  url("queries", QueriesHandler, name="queries"),
+  url("updates", UpdatesHandler, name="updates"),
+  url("fortune", FortuneHandler, name="fortune")
 ]
 
 options = {}
 
 main = WSGIApplication(
-	middleware = [
-		bootstrap_defaults(url_mapping=all_urls),
-		path_routing_middleware_factory
-	],
-	options = options
+  middleware = [
+    bootstrap_defaults(url_mapping=all_urls),
+    path_routing_middleware_factory
+  ],
+  options = options
 )
 
 if __name__ == "__main__":
-	from wsgiref.simple_server import make_server
-	try:
-		print("Server started on http://localhost:8080")
-		make_server("", 8080, main).serve_forever()
-	except KeyboardInterrupt:
-		pass
-	print("\nStopping server...")
+  from wsgiref.simple_server import make_server
+  try:
+    make_server("", 8080, main).serve_forever()
+  except KeyboardInterrupt:
+    pass