How do I embed a .swf file into my Google App Engine app?
First off i'm new here so if I made any mistakes please point them out.
I am working on an app engine project in python were i want to be able to upload and play games in a .swf format. I am having trouble getting app engine to send(deliver, render, display,...not sure what the correct term is) files with a .swf ending.
What am i doing wrong?
I've tried embedding a picture in my object tag to make sure my html and Django template isn't what is causing th problem, and it works fine.
This is my app.yaml file
application: flashstealer
version: 1
runtime: python
api_version: 1
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /images
static_dir: images
- url: /flashgames
static_dir: flashgames
- url: .*
script: main.py
...and my main.py
import wsgiref.handlers
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
class Game(db.Model):
name = db.StringProperty()
description = db.StringProperty()
tags = db.StringListProperty()
playcount = db.IntegerProperty()
location = db.StringProperty()
originallocation = db.StringProperty()
class MyHandler(webapp.RequestHandler):
def get(self):
games = db.GqlQuery('SELECT * FROM Game LIMIT 20')
self.response.out.write(template.render('main.html',{'games': games}))
def post(self):
game = Game(
name = self.request.get('name'),
description = self.request.get('description'),
#tags = self.request.get('tags'),
#playcount = self.request.get('playcount'),
location = self.request.get('location'),
originallocation = self.request.get('originallocation'))
game.put()
self.redirect("/")
def main():
app = webapp.WSGIApplication([(r'.*', MyHandler)],debug=True)
wsgiref.handlers.CGIHandler().run(app)
if __name__ == '__main__':
main()
...and my main.html
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Emporium by Free Css Templates</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="stylesheets/default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<!-- start header -->
<div id="logo">
<h1><a href="#">The Arcade</a></h1>
<h2> » but just a fondation for now</h2>
</div>
<div id="header">
<div id="menu">
<ul>
<li class="current_page_item"><a href="#">Homepage</a></li>
<li><a href="#">Blogs</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">About</a></li>
<li class="last"><a href="#">Contact</a></li>
</ul>
</div>
</div>
<!-- end header -->
</div>
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
{% for game in games %}
<div class="post">
<h1 class="title">{{game.name}}</h1>
<div class="entry">
<embed src="{{game.location}}" width="100%" height="400">
<p>{{game.description}}</p>
</div>
<div class="meta">
<p class="links">
<a href="#" class="more">Read full article</a>
<b>|</b>
<a href="#" class="comments">Play Count ({{game.playcount}})</a>
</p>
</div>
</div>
{% endfor %}
<div class="post">
<h2 class="title">Submit Games Here</h2>
<div class="entry">
<form action="" method="post">
<fieldset>
Name:<p><input type="stringfield" name="name" ></p>
Descrition:<p><input type="stringfield" name="description"></p>
Original Location:<p><input type="stringfield" name="originallocation"></p>
Playcount:<p><input type="stringfield" name="playcount" ></p>
Location:<p><input type="stringfield" name="location"></p>
Tags:<p><input type="stringfield" name="tags"></p>
<p><input type="submit" value="post"></p>
</fieldset>
</form>
</div>
<div class="meta">
<p class="links">
<a href="#" class="more">Read full article</a>
<b>|</b>
<a href="#" class="comments">Comments (32)</a>
</p>
</div>
</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<div id="sidebar">
<ul>
<li id="search">
<h2>Search</h2>
<form method="post" action="">
<fieldset>
<input type="text" id="message" name="message" value="" />
<input type="submit" id="x" value="Search" />
</fieldset>
</form>
</li>
<li>
<h2>To Do</h2>
<ul>
<li><a href="#">make a list of games in db</a></li>
<开发者_如何转开发/ul>
</li>
</ul>
</div>
<!-- end sidebar -->
<div style="clear: both;"> </div>
</div>
<!-- end page -->
<!-- start footer -->
<div id="footer">
<p id="legal"></p>
</div>
<!-- end footer -->
</body>
</html>
Because i'm new i cant post photos directly
the way the browser shows it
This is the way it shows up when i view the rendered(again whatever it's called) html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Emporium by Free Css Templates</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="stylesheets/default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<!-- start header -->
<div id="logo">
<h1><a href="#">The Arcade</a></h1>
<h2> » but just a fondation for now</h2>
</div>
<div id="header">
<div id="menu">
<ul>
<li class="current_page_item"><a href="#">Homepage</a></li>
<li><a href="#">Blogs</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">About</a></li>
<li class="last"><a href="#">Contact</a></li>
</ul>
</div>
</div>
<!-- end header -->
</div>
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
<div class="post">
<h1 class="title">Test with .swf</h1>
<div class="entry">
<embed src="/flashgames/aow2.swf">
<p>This is were the problem starts because it leaves a spot where the game should be but there's no game.</p>
</div>
<div class="meta">
<p class="links">
<a href="#" class="more">Read full article</a>
<b>|</b>
<a href="#" class="comments">Play Count (None)</a>
</p>
</div>
</div>
<div class="post">
<h1 class="title">Test with .img</h1>
<div class="entry">
<object width="100%" height="400">
<embed src="/images/img01.jpg">
</object>
<p>This is proof that it's not my html and template that's causing the problem</p>
</div>
<div class="meta">
<p class="links">
<a href="#" class="more">Read full article</a>
<b>|</b>
<a href="#" class="comments">Play Count (None)</a>
</p>
</div>
</div>
<div class="post">
<h2 class="title">Submit Games Here</h2>
<div class="entry">
<form action="" method="post">
<fieldset>
Name:<p><input type="stringfield" name="name" ></p>
Descrition:<p><input type="stringfield" name="description"></p>
Original Location:<p><input type="stringfield" name="originallocation"></p>
Playcount:<p><input type="stringfield" name="playcount" ></p>
Location:<p><input type="stringfield" name="location"></p>
Tags:<p><input type="stringfield" name="tags"></p>
<p><input type="submit" value="post"></p>
</fieldset>
</form>
</div>
<div class="meta">
<p class="links"><a href="#" class="more">Read full article</a> <b>|</b> <a href="#" class="comments">Comments (32)</a></p>
</div>
</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<div id="sidebar">
<ul>
<li id="search">
<h2>Search</h2>
<form method="post" action="">
<fieldset>
<input type="text" id="message" name="message" value="" />
<input type="submit" id="x" value="Search" />
</fieldset>
</form>
</li>
<li>
<h2>To Do</h2>
<ul>
<li><a href="#">make a list of games in db</a></li>
</ul>
</li>
</ul>
</div>
<!-- end sidebar -->
<div style="clear: both;"> </div>
</div>
<!-- end page -->
<!-- start footer -->
<div id="footer">
<p id="legal">( c ) 2008. All Rights Reserved. <a href="http://www.freecsstemplates.org/">Bestfriends</a> designed by <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>.</p>
</div>
<!-- end footer -->
</body>
</html>
these are the folders in my root and their content
- images
- img01.jpg
- img02.jpg
- img03.jpg
- spacer.gif
- flashgames
- aow2.swf
- stylesheets
- default.css
This doesn't look like a standard way to embed a flash app - and it's not an App Engine issue. You've got an object tag with nothing but dimensions, and an embed tag inside it with nothing but a URL. Have you tried using some standard embed markup to do this? The Flash environment should provide a simple way to export your app embedded in an HTML page. Have you tried doing it with a simple static HTML file on disk, to make it easier to debug and take App Engine out of the equation?
精彩评论