`
wandernet
  • 浏览: 2341 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

Clojure学习:使用compojure做个特简单的web的例子

 
阅读更多
照着文档,做个很简单的web,用来学习。
web的功能:把数据库(文本文件)的内容显示到网页上。


1. lein new hello 会产生一个hello文件夹

2. 会在刚产生的hello文件夹里,自动添加一个project.clj文件,内容如下: (不一样可以改)
(defproject hello "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [compojure "1.1.1"]]
  :plugins [[lein-ring "0.7.3"]]
  :ring {:handler hello.handler/app}
  :profiles
  {:dev {:dependencies [[ring-mock "0.1.3"]]}})


3. 把src/hello/handler.clj的内容改成:
(ns hello.handler
  (:use compojure.core)
  (:require [compojure.handler :as handler]
            [compojure.route :as route])
  (:import (java.io BufferedReader FileReader)))

(defn db-to-html [file]
  (with-open [rdr (BufferedReader. (FileReader. file))]
    (apply str (map (fn [line] (str "<h1>" 
                                    ((read-string line) :title) 
                                    "</h1><br><p>"
                                    ((read-string line) :body) "</p>\n<hr>"))
                    (line-seq rdr)))))

(defroutes app-routes
  (GET "/" [] (db-to-html "f:/hello/res/a.db"))
  (route/not-found "Not Found"))

(def app
  (handler/site app-routes))



3. 在hello文件夹下添加res/a.db文件(其实就是文本文件,暂时当做数据库用)
a.db文件的内容是
{:title "标题", :body "文摘内容"}
。。。
。。。


4. CD HELLO -> lein ring server启动服务器

分享到:
评论

相关推荐

    compojure-api:具有Compojure和Swagger的Sweet Web API

    Compojure-API是一款基于Clojure语言的Web API开发框架,它结合了Compojure和Swagger的优势,使得构建...通过阅读`compojure-api-master`这个项目,你可以深入了解其工作原理,并学习如何在自己的项目中使用这些技术。

    artigos-clojure:用于存储Clojure文章中描述的代码的存储库

    这个简单的例子展示了Clojure的简洁语法和其与Java平台的交互性。 接下来,我们进入"创建功能"的环节。在Clojure中,函数是第一等公民,你可以随时定义、传递和返回函数。例如,你可以创建一个名为`add`的函数来求...

    compojure:RingClojure的简洁路由库

    Compojure是Ring库的一个扩展,它为Clojure开发者提供了一种优雅且强大的方式来定义Web应用程序的路由。...如果你正在使用或打算学习Clojure进行Web开发,掌握Compojure将会大大提高你的开发效率。

    打ic:在Clojure中呈现HTML的快速库

    hiccup可以很好地与其他Clojure Web框架(如Compojure、Luminus、 pedestal等)配合使用,提供动态生成HTML的能力。在这些框架中,hiccup通常用于构建视图层,与路由和控制器逻辑相结合,构建完整的Web应用。 六、...

    clojurebits:涉足Clojure

    通过实践这些例子,学习者可以掌握如何使用Clojure解决实际问题,例如构建Web应用(如使用Compojure框架)、处理数据(如使用Datascript库)、进行系统脚本等。 总之,"涉足Clojure"的学习资料将带你走进一个高效、...

    必要的邪恶的:XML-RPC实现为Clojure的Ring HTTP处理程序

    这样,我们就创建了一个简单的Web应用,它除了处理静态资源外,还能处理XML-RPC POST请求。 总结来说,XML-RPC在Clojure中的实现结合了Ring库的强大功能,使得Clojure应用程序能够提供远程过程调用服务。通过使用...

Global site tag (gtag.js) - Google Analytics