heroku_简单的Twitter:Heroku上的Play框架,AJAX,CRUD

heroku

因此,重大的公告已经发布– Heroku开始为Play Framework应用程序提供本机支持! 如果您还没有听说过,请在Heroku的博客上查看Jesper Joergensen的帖子

因此,对于演示,我将建立一个非常基本的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;

	@Required
	public Date createDate = new Date();

	public static List findLatest() {
		return Tweet.find(“order by createDate desc”).fetch();
	}

	@Override
	public 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 Action
	var 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 redirect
	return 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 {

	@Test
	public 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:crud

GET /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分步指南( 共计)

相关文章 :


翻译自: https://www.javacodegeeks.com/2011/09/simple-twitter-play-framework-ajax-crud.html

heroku

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值