简单的Twitter:Heroku上的Play框架,AJAX,CRUD
因此,对于演示,我将建立一个非常基本的Twitter副本; 它本来就很简单,但是却显示了Play足够的生产力! 提供。 我将逐步完成设置演示应用程序的步骤,该应用程序应涵盖Heroku博客文章中宣布的内容,但要更深入一些。
第一步,创建应用程序
play new twitter
将依赖性添加到CRUD模块(conf / dependencies.yml)
- play -> crud
获取依赖项
play dependencies
IDE整合
(对于Eclipse)
play eclipsify
(对于IntelliJ)
play idealize
(对于Netbeans)
play netbeansify
创建模型(app / models / Tweet.java)
package models;import java.util.Date;
import java.util.List;import javax.persistence.Entity;import play.data.validation.MaxSize;
import play.data.validation.Required;
import play.db.jpa.Model;@Entity
public class Tweet extends Model {@Required@MaxSize(140)public String tweet;@Requiredpublic Date createDate = new Date();public static List findLatest() {return Tweet.find(“order by createDate desc”).fetch();}@Overridepublic String toString() {return this.tweet;}}
为JPA模型定义数据库(conf / application.conf)
db=${DATABASE_URL}
添加控制器操作(app / controllers / Application.java)
package controllers;import java.util.List;import models.Tweet;
import play.mvc.Controller;public class Application extends Controller {public static void index() {List tweets = Tweet.findLatest();render(tweets);}public static void create(String msg) {Tweet tweet = new Tweet();tweet.tweet = msg;tweet.save();render(tweet);}public static void tweets() {List tweets = Tweet.findLatest();renderJSON(tweets);}
}
定义主视图(app / views / Application / index.html)
#{extends ‘main.html’ /}
#{set title:’Home’ /}<!– Create Tweet Form –><form> <input name=”tweet” type=”text” />
<input type=”submit” value=”Tweet” /> </form><!– Latest Tweets List –>
<ul> #{list tweets}
<li>${_.tweet} (${_.createDate.since()})</li><p><p>
#{/list}</ul>
<!– JS –>
<script type=”text/javascript”>// Capture Form Submit Event$(‘form’).submit(function() {// Define Create Actionvar createAction = #{jsAction @create(‘:tweet’) /}// Call Create Action$.post(createAction({tweet: $(‘input:first’).val()}), function(data) {// Prepend Results to the List$(‘ul’).prepend(data);$(‘input:first’).val(”);});// Don’t let the browser redirectreturn false;});</script>
定义创建操作视图(app / views / Application / create.html)
<li><code>${tweet.tweet} (${tweet.createDate.since()})</li>
创建推文模型的单元测试
import models.Tweet;import org.junit.Assert;
import org.junit.Test;import play.test.UnitTest;public class TweetTest extends UnitTest {@Testpublic void testModelSave() {long count = Tweet.count();Tweet t = new Tweet();t.tweet = “my sample tweet”;t.save();long count2 = Tweet.count();Assert.assertEquals(count + 1, count2);}}
为推特模型创建CRUD管理员
package controllers;public class Tweets extends CRUD {
}
添加路由(conf / routes)
* /admin module:crudGET /rest/tweets Application.tweets
为CRUD管理员定义消息(conf / messages)
tweet=Tweet
createDate=Date Created
定义配置文件
web: play run –%$FRAMEWORK_ID –http.port=$PORT -DusePrecompiled=$USE_PRECOMPILED -DDATABASE_URL=mem
在开发中运行
play run –%dev -DusePrecompiled=false -DDATABASE_URL=mem
在Heroku上创建应用程序
heroku create play-twitter –stack cedar
heroku创建推特-堆叠杉
设置Git存储库
git init; git add .; git commit -a -m “Initial Commit”; git remote add heroku git@heroku.com:play-twitter.git
设置Heroku环境变量
heroku config:add FRAMEWORK_ID=prod; heroku config:add USE_PRECOMPILED=true
部署到Heroku
git push heroku master
如果有任何问题,您可以随时检查日志
heroku logs
在Heroku上设置真实数据库
heroku addons:add shared-database
您可以检出现场演示在这里 ,管理界面这里或克隆的源代码Github上 。
参考:我们的JCG合作伙伴 Felipe Oliveira(位于Geek)完全使用 ,其中包含Play框架,AJAX,CRUD和Heroku的简单Twitter逐步指南 。
相关文章 :
- RabbitMQ播放模块! 构架
- Heroku运行Java
- 在90分钟内使用Grails构建Twitter:要点
- Spring MVC开发–快速教程
- Spring MVC3 Hibernate CRUD示例应用程序
- Java教程和Android教程列表
翻译自: https://www.javacodegeeks.com/2011/09/simple-twitter-play-framework-ajax-crud.html
简单的Twitter:Heroku上的Play框架,AJAX,CRUD相关推荐
- heroku_简单的Twitter:Heroku上的Play框架,AJAX,CRUD
heroku 因此,重大的公告已经发布– Heroku开始为Play Framework应用程序提供本机支持! 如果您还没有听说过,请在Heroku的博客上查看Jesper Joergensen的帖子 ...
- heroku搭建邮件服务器,在Heroku上搭建简单的Python Web 应用
开发一个小应用放在互联网上给大家使用是一件成就感很高的事情,不过支持Python的免费空间不是很多,虽然GAE支持Python,不过由于众所周知的原因,在国内是很难打开GAE,这篇文章为大家介绍一下H ...
- openshift_云上的播放框架变得简单:Openshift模块
openshift 仅仅几年前,找到一个负担得起的Java Web应用程序托管解决方案是一项艰巨的任务,而寻找免费的托管解决方案是一项不可能的任务. 更不用说考虑自动缩放,单命令部署,持续集成等问题了 ...
- 云上的播放框架变得简单:Openshift模块
仅仅几年前,找到一个负担得起的Java Web应用程序托管解决方案是一项艰巨的任务,而寻找免费的托管解决方案是一项不可能的任务. 更不用说甚至考虑自动缩放,单命令部署,持续集成等事情,这都是科幻小说. ...
- PHP + Redis 实现一个简单的twitter
原文位于Redis官网http://redis.io/topics/twitter-clone Redis是NoSQL数据库中一个知名数据库,在新浪微博中亦有部署,适合固定数据量的热数据的访问. 作为 ...
- heroku服务器_如何在Heroku上使用Express服务器部署React应用
heroku服务器 by Ashish Nandan Singh 通过Ashish Nandan Singh 如何在Heroku上使用Express服务器部署React应用 (How to deplo ...
- php redis 唯一id,PHP + Redis 实现一个简单的twitter
Redis是NoSQL数据库中一个知名数据库,在新浪微博中亦有部署,适合固定数据量的热数据的访问. 作为入门,这是一篇很好的教材,简单描述了如何使用KV数据库进行数据库的设计.新的项目www.xiay ...
- 在Heroku上扩展ipify服务
\ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ ipify服务在Heroku上已扩展到超过300亿次请求.近期,该服务的开发者分享了他的经验 ...
- Flask 教程 第十八章:Heroku上的部署
本文转载自:https://www.jianshu.com/p/d13dc21c6e43 这是Flask Mega-Tutorial系列的第十八部分,我将在其中部署Microblog到Heroku云平 ...
最新文章
- 内核中的kmalloc函数详解
- NGUI所见即所得之深入剖析UIPanel,UIWidget,UIDrawCall底层原理
- Android模拟位置出错IllegalArgumentException: Incomplete location object, missing timestamp or accuracy?
- 开心哲理---您的妻子! --转by yp
- 服务器点播直播系统,服务器点播直播系统
- java项目中Classpath路径到底指的是哪里?
- php后台如何避免用户直接进入方法
- 图像空域增强:灰度映射法
- 台式计算机找不到无线连接,台式机如何连接wifi_台式机找不到无线网络
- 方法论+本土特色,这个BPM平台不简单
- 华为usg6000配置手册_三国志11手机版,问题解决手册 1.4.4版本
- TiDB的设计哲学——Make It Work! Make It Right! Make It Fast!
- ffmpeg实例,drawtext在视频上添加文字
- Dummy Sample
- 入职前的背景调查到底在查什么?
- 区块链技术在食品供应链领域的应用
- mysql 增加时间字段
- 任正非最新讲话:最好的防御就是进攻
- 【独立站运营】在线聊天机器人为何能成为电商行业的大趋势?
- 对数组名取地址与数组名
热门文章
- maven安装教程安装教程_Maven教程之春
- ljc.framework_Java 9模块系统(拼图)@ LJC的HackTheTower
- threejs 影子属性_影子场vs.属性访问器接口第2轮
- jmeter 采样器作用_实施自定义JMeter采样器
- idea测试单元错误_不要单元测试错误
- 使用适用于Java 2的AWS开发工具包的AWS DynamoDB版本字段
- 夏末浅笑_2014年夏末大Java新闻
- 看到一个沙粒世界:再一次你好世界
- 使用Envoy代理的微服务模式,第二部分:超时和重试
- github gists_Eclipse中的Github Gists