読者です 読者をやめる 読者になる 読者になる

Django + Hylang

python django hy

DjangoでHylangを使ってみるテスト

Projectの作成

# 必要なライブラリの設定
# (mkvirtualenvとかはインストールしてあること前提)
$ mkvirtualenv django
$ pip install hy
$ pip install django
# Djangoプロジェクト作成
$ django-admin startproject hydjango
$ cd hydjango
# DBとかのセットアップ
$ python manage.py migrate
$ python manage.py startapp hyapp
# Templateフォルダ作成
$ mkdir templates

ファイルの変更

  • hydjango/settings.pyを編集
INSTALLED_APPS = (
  # なんやらかんやら書いてあるので、最後に下記を追加
  'hyapp',
  )
# ...
TEMPLATES = [
  'BACKEND': ...
  # DIRSの所に、上で作成したtemplatesフォルダを指定する
  'DIRS': [os.path.join(BASE_DIR, "templates")],
  'APP_DIRS': ...
  ...
]
  • templates/hyapp_index.htmlを編集
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <h2>Hylang + Djangoサンプル</h2>
</body>
</html>
  • hydjango/urls.pyを編集
# import文に下記を追加
import hy
import hyapp
from hyapp import views
# urlpatternsに下記を追加
urlpatterns = [
  url(r'^admin/', include(admin.site.urls)),
  # 下記を追加
  url(r'^', hyapp.views.main),
]
  • hyapp/views.hyを編集
    (*) hyapp/views.pyを消してviews.hyを作成する
(import os)
(import [django.shortcuts [render]])
(import [django.http [HttpResponse]])
(import [django.template [RequestContext loader]])

(defun main [request]
  (setv template (.get_template loader "hyapp_index.html"))
  (setv context (RequestContext request {}))
  (HttpResponse (.render template context)))
  • サーバ実行
$ python manage.py runserver 0.0.0.0:8888

GitHub

下記に上げたので参考にどうぞ
https://github.com/dis-kaichi/hylang-samples

所感

とりあえず、views.pyをviews.hyに変えるだけでよかったので、難しくはなかった。
需要あるのかねコレ?
公式サイト見るとhttps://github.com/paultag/djlisp/tree/master/djlispみたいなのがあるので、完全にhylangにしたい場合はそっちを参考にすると良いかも

広告を非表示にする