from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.api import users
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template
import os,datetime
class data(db.Model):
id=db.IntegerProperty(default=0)
title=db.StringProperty()
author=db.UserProperty()
content=db.StringProperty(multiline=True)
create_time=db.DateTimeProperty()
class mainpage(webapp.RequestHandler):
def get(self):
article=data.all().order('-create_time').fetch(10)
user=users.get_current_user()
if user:
url=users.create_logout_url('/')
dis="welcome %s <a href=%s >logout</a>" %(user,url)
else:
url=users.create_login_url('/')
dis="<a href=%s >login</a>" % url
values={'article':article,'dis':dis,'user':user}
self.response.out.write(template.render('index.html',values))
class add_article(webapp.RequestHandler):
def post(self):
tem=data()
title=self.request.get('title')
content=self.request.get('content')
author=users.get_current_user()
if title and content and author:
tem.id=tem.all().count()+1
tem.title=title
tem.author=author
tem.content=content
tem.create_time=datetime.datetime.now()
tem.put()
self.response.out.write('save succeful !!!<a href="/">home</a>')
else:
self.response.out.write('something error')
class to_add(webapp.RequestHandler):
def get(self):
user=users.get_current_user()
self.response.out.write(template.render('add.html',{'user':user}))
class article_manage(webapp.RequestHandler):
def get(self):
user=users.get_current_user()
articles=data.all().order('-create_time').fetch(10)
value={'user':user,'articles':articles}
self.response.out.write(template.render('manage.html',value))
class detail(webapp.RequestHandler):
def get(self,a):
dd=int(a)
tem=db.GqlQuery('select * from data where id=:1' ,dd)[0]
user=users.get_current_user()
value={'tem':tem,'user':user}
self.response.out.write(template.render('detail.html',value))
class del_article(webapp.RequestHandler):
def get(self,a):
dd=int(a)
tem=db.GqlQuery('select * from data where id=:1' ,dd)[0]
user=users.get_current_user()
if user and tem:
tem.delete()
self.redirect('/manage/')
class edit_article(webapp.RequestHandler):
def get(self,a):
dd=int(a)
tem=db.GqlQuery('select * from data where id=:1' ,dd)[0]
user=users.get_current_user()
value={'tem':tem,'user':user}
self.response.out.write(template.render('edit.html',value))
class save_article(webapp.RequestHandler):
def post(self,a):
dd=int(a)
tem=db.GqlQuery('select * from data where id=:1' ,dd)[0]
title=self.request.get('title')
content=self.request.get('content')
author=users.get_current_user()
if title and content and author:
tem.title=title
tem.author=author
tem.content=content
tem.create_time=datetime.datetime.now()
tem.put()
self.response.out.write('save succeful !!!<a href="/">home</a>')
else:
self.response.out.write('something error')
application = webapp.WSGIApplication(
[('/', mainpage),
('/add/',to_add),
('/sign/',add_article),
('/manage/',article_manage),
('/n%3D(.*)',detail),
('/manage/del/n%3D(.*)',del_article),
('/manage/edit/n%3D(.*)',edit_article),
('/manage/save/n%3D(.*)',save_article),
],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
index.html:
<style>a{text-decoration:none}</style>
{{ dis }}
{% if user %}
<a href='/add/' > 写文章</a>
<a href='/manage/'> 管理文章</a>
{% endif %}
<br>
<br>
{% if article %}
{% for i in article %}
<div>title:{{i.title}}</div>
<div>author:{{i.author}}</div>
<div>create time: {{ i.create_time }}</div>
<pre>{{i.content}}</pre>
{% endfor %}
{% else %}
暂时没有文章
{% endif %}
manage.html:
<style>a{text-decoration:none}</style>
{{ n}}
{% if user %}
welcome {{user}}
<a href='/' >主页</a>
<a href='/add/' > 写文章</a>
<a href='/manage/'> 管理文章</a>
<br>
{% if articles %}
{% for i in articles %}
<a href="/n={{ i.id }}" >{{ i.title }}</a>
<a href="/manage/del/n={{ i.id }}">删除</a>
<a href="/manage/edit/n={{ i.id }}">修改</a>
<br>
{% endfor %}
{% else %}
暂时没有文章<br>
{% endif %}
{% else %}
please login first !!!<a href='/'>home</a>
{% endif %}
detail.html:
<style>a{text-decoration:none}</style>
{{ n }}
{% if user %}
<div>welcome {{user}}</div>
<a href='/'> 主页</a>
<a href='/add/' > 写新文章</a>
<a href='/manage/'> 管理文章</a>
{% endif %}
{% if tem %}
<div>title:{{ tem.title }}</div>
<div>author:{{ tem.author }}</div>
<div>create_time{{ tem.create_time }}</div>
<pre>{{ tem.content }}</pre>
{% else %}
没有这样的文章
{% endif %}
edit.html:
<style>a{text-decoration:none}</style>
{%if user %}
welcome {{ user }}
<a href='/'>主页</a><br>
<form action='/manage/save/n={{ tem.id }}' method='post'>
<div>title:<input type='text' name='title' value="{{ tem.title }}"></div>
<div><textarea name='content' rows="30" cols="100" >{{ tem.content }}</textarea></div>
<input type='submit' value='edit article'>
</form>
{% else %}
you have to login to write aritle <a href='/'>home</a>
{% endif %}
add.html:
{%if user %}
welcome {{ user }} <a href='/'>主页</a><br>
<form action='/sign/' method='post'>
<div>title:<input type='text' name='title'></div>
<div><textarea name='content' rows="30" cols="100" ></textarea></div>
<input type='submit' value='add article'>
</form>
{% else %}
you have to login to write aritle <a href='/'>home</a>
{% endif %}
app.yaml:
application: oncyberspace
version: 1
runtime: python
api_version: 1
handlers:
- url: .*
script: cms.py
写了一个小小的脚本,用于增加,删除,修改文章。暂时只有这些功能:http://oncyberspace.appspot.com
分享到:
相关推荐
综上所述,入门教程涉及到了安装与配置Eclipse开发环境、安装Google App Engine插件、创建和配置Web应用项目以及编译时的Java版本兼容性问题,这些知识点对于想要开始使用Google App Engine开发Web应用的开发者来说...
在谈论《云端代码Google App Engine编程指南》之前,我们需要先了解一下Google App Engine(GAE)平台的背景知识。Google App Engine(简称GAE)是由Google公司提供的一个无服务器(serverless)的云计算平台,该...
描述中提到的"GoogleApp开发的SDK(Java版)"进一步强调了这个SDK是专门为在Google App Engine上开发Java应用设计的。SDK提供了本地开发环境,开发者可以在本地计算机上模拟Google App Engine的环境,进行应用的开发...
Google App Engine 是谷歌提供的一项平台即服务(PaaS)产品,允许开发者构建并运行Web应用程序。这个平台的主要特点是它提供了全面的基础设施,包括计算、存储和数据库服务,开发者只需要关注应用逻辑,而无需管理...
A good book to learn Google App Engine.
clock.rar 这是我今天做的一个基于google app engine写的一个在该平台上开发app的示例,通过该示例的学习,我们可以很快上手学会怎样在GAE上开发属于你的应用程序了,希望对大家有用!
在**Google App Engine**上开发应用,你需要理解以下几个关键知识点: 1. **开发环境与部署**: 使用Google提供的SDK(软件开发工具包)进行本地开发和测试。SDK包括了模拟器,可以在本地环境中运行App Engine应用。...
### Google App Engine for Java中文API知识点详解 #### 一、Google App Engine for Java概览 - **背景介绍**: - Google App Engine最初是专为Python开发者设计的平台,但随着时间的发展,为了满足更广泛开发者...
本文档将详细讲解如何在 Google App Engine 上安装和部署应用,特别是对于初学者来说,这是一个非常实用的入门级教程。 首先,安装 Google App Engine 插件是开发的第一步。以 MyEclipse 7.5 为例,你需要通过插件...
Google App Engine(GAE)是Google推出的一款用于构建和托管Web应用的平台服务,它为开发者提供了丰富的工具和资源,使得开发者能够轻松地在Google的基础设施上运行应用程序。本文章将深入探讨GAE的核心概念、工作...
Eclipse Google 插件 Google App Engine SDK for Java Google App Engine文档 按钮 Google App Engine 开发包
总的来说,"google_appengine_1.9.50.7z"是一个包含Python SDK的压缩包,为开发者提供了在Google云上构建、测试和部署Python应用程序的工具。通过使用这个SDK,开发者可以创建从简单的网站到复杂的实时通信应用(如...
在搭建WebRTC(AppRTC)时,我们会遇到需要部署Google App Engine的难题,并且最近墙的厉害,所以我特地把我珍藏的Google App Engine 最新版(2020-7-5)分享出来,希望可以方便想搭建WebRTC(AppRTC)的同学们
Google App Engine is a key component of the Google Cloud Platform and one of the most comprehensive cloud services. Together with Python, the first programming language ever supported by the platform,...
### Google App Engine的一些限制 Google App Engine (GAE) 是Google Cloud Platform的重要组成部分之一,它为开发者提供了构建高效、可扩展的应用程序的平台。本文旨在详细介绍GAE在资源使用方面的一些关键限制,...
2. **高可用性**:由于运行在 Google 的全球分布式基础设施上,App Engine 提供了极高的服务可用性和数据持久性。 3. **免费配额**:对于小型项目,Google App Engine 提供了一定程度的免费资源使用,包括计算时间、...