google app engine 上的小脚本

本文介绍了一个基于Google App Engine搭建的简易博客系统,该系统支持文章的增删改查功能,并利用模板渲染展示页面内容。
部署运行你感兴趣的模型镜像

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

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)内容概要:本文围绕“基于深度强化学习的微能源网能量管理与优化策略”展开研究,重点利用深度Q网络(DQN)等深度强化学习算法对微能源网中的能量调度进行建模与优化,旨在应对可再生能源出力波动、负荷变化及运行成本等问题。文中结合Python代码实现,构建了包含光伏、储能、负荷等元素的微能源网模型,通过强化学习智能体动态决策能量分配策略,实现经济性、稳定性和能效的多重优化目标,并可能与其他优化算法进行对比分析以验证有效性。研究属于电力系统与人工智能交叉领域,具有较强的工程应用背景和学术参考价值。; 适合人群:具备一定Python编程基础和机器学习基础知识,从事电力系统、能源互联网、智能优化等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习如何将深度强化学习应用于微能源网的能量管理;②掌握DQN等算法在实际能源系统调度中的建模与实现方法;③为相关课题研究或项目开发提供代码参考和技术思路。; 阅读建议:建议读者结合提供的Python代码进行实践操作,理解环境建模、状态空间、动作空间及奖励函数的设计逻辑,同时可扩展学习其他强化学习算法在能源系统中的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值