开发者

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> &raquo;&nbsp;&nbsp;&nbsp;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;">&nbsp;</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> &raquo;&nbsp;&nbsp;&nbsp;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;">&nbsp;</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?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜