仕組み
ユーザがURLを叩いた時=>urls.pyで該当のビューが呼び出され=>
・リクエストされたURLとビューのマッピング定義は、urls.pyに記載
・よびだすHTML文書(template)とフィールドの定義は、views.pyに記載
views.pyに定義された、
ビュー関 数の第一引数には HttpRequest が、それ以降の引 数には正規表現でキャプチャした値が渡され、
URL 中の値を取り出すには、正規表現にて、単に丸括弧で囲むだけです。
例えば、 (r’^articles/(\d{4})/(\d{2})/$’, ‘news.views.month_archive’)と定義されており、合致するリクエスト、/articles/2005/03/ が来た場合、
ビュー関数、news.views.month_archive(request, '2005', '03') を 呼び出します。第二引数、第三引数に2005,03がそれぞれ入ります。
^ ・・・行頭にマッチ。\d・・・0-9の数字。{m}・・・前にある RE の m 回の正確なコピーとマッチ。\d{4}は4桁の0-9の数字。$・・・行尾をさす。
(?P<name>pattern) ・・・名前つきの 正規表現グループで URL から情報を取り出し、ビュー の キーワード引数 に渡す
・templateはbase.htmlやそのたhtmlファイルに記載
・データベースに格納するテーブル、フィールドの定義は、models.pyに記載
urls.pyのurl関数は、正規表現を持ちいる。
正規表現例
参考:第 4 回 正規表現とジェネレータ http://www.geocities.jp/m_hiroi/light/python04.html
6.2. re — 正規表現操作 http://docs.python.jp/3.4/library/re.html
I
Djangoの始め方
1.projectの作成 ↓たとえばmysiteというプロジェクトを作る
上記コマンドを実行したカレントフォルダにmysiteフォルダができる
↓このようなファイル構成
mysite
|
| manage.py
|
\—mysite
settings.py
urls.py
wsgi.py
__init__.py
2.データベースのセットアップ ↓データベースの設定は、
settings.py にありますが、標準では、SQlite3を使うよう設定済python manage.py migrate 3.スーパーユーザーを作成
python manage.py createsuperuser
C:\Python34\mysite>python manage.py createsuperuser
Username (leave blank to use ‘hide’): admin
Email address:
Password:
Password (again):
Superuser created successfully.
4.開発サーバの起動
python manage.py runserver 5.アプリケーションの作成
アプリケーションは、プロジェクトを構成する機能の単位で、場合によっては再利用の対象とできる単位
python manage.py startapp cms 6.データベースに定義したいデータ モデルを、
cms/models.py に定義
7.モデルを有効にする
cms アプリケーションをインストールしたことを、プロジェクトに教えてあげる必要があります。
/settings.py の INSTALLED_APPS の最後に cms を追加。
8.言語とタイムゾーンを日本にします
9.以下のコマンドで、models.py の変更を拾って、マイグレーションファイルを作成
python manage.py makemigrations cms 10.このマイグレートファイルが、どのような SQL になるか、以下のコマンドで確認
python manage.py sqlmigrate cms 0001 11.まだデータベースに反映していないマイグレートファイルを、以下のコマンドでデータベースに反映
python manage.py migrate 12.管理サイトの有効化
管理サイトというものがあって、ここからマスターメンテナンス的なデータ投入がすべてできてしまいます。
1python manage.py runserver で開発用サーバを起動します。
2http://127.0.0.1:8000/admin/ にブラウザでアクセスします。
3初回の $ python manage.py createsuperuser で初期化したスーパーユーザー admin/admin でログインします。
13 cms モデルを admin 上で編集できるようにする
cms/admin.py に、管理サイトへ表示したいモデルを追加
14 データの追加、修正、削除を確認
管理サイトの一覧を見た時、models.py の
で設定したものが、レコード名として見えています。 15もう少しレコードの項目全体が見えるよう、
モデルに追加したテーブルの一覧、登録、修正、削除が簡単にできました
Bootstrapの導入
Bootstrap で必要な jQuery を含めて、以下からダウンロード
ダウンロードしたファイルを、mybook プロジェクト ディレクトリの下に static というディレクトリを作って、以下のように配置
この static というディレクトリは、mybook/settings.py の STATIC_URL で指定されたディレクトリ
ここを探してくれるよう、mybook/settings.py の最後に、STATICFILES_DIRS を追加
django-bootstrap-form一覧系HTMLは、Bootstrapで必要なclassを手書きして、登録/修正のフォーム系HTMLは django-bootstrap-form という Python モジュールを使います。
mybook/settings.py の INSTALLED_APPS に ‘bootstrapform’ を追加一覧、登録、修正、削除のファンクションが必要なので、`cms/views.py’ にひな形を作る
cms/urls.py というファイルは存在しないので、新しく作る。この中で、URLと、ビューのファンクションの紐付けを行う============================
Djangoのバージョン確認
C:\Python34>pip freeze|find “Django”
Django==1.8.3
1.setting.pyに以下を記載
EMAIL_HOST=’SMTPサーバ名’
EMAIL_PORT = 25
EMAIL_HOST_USER = ”
EMAIL_HOST_PASSWORD = ”
EMAIL_USE_TLS = False
2.views.pyに以下を記載
from django.core.mail import EmailMessage
def <ここにview名>(request):
email = EmailMessage(‘Hello’, ‘World’, to=[‘root@test.com’])
email.send()
viewが呼ばれた瞬間にメールが対象のSMTPサーバ宛に飛ぶ
タイトルの通り、同一フォーム内でクリックしたボタンによって異なる処理を行いたい場合は以下のように書きます。 hoge.html
views.py
Djangoで使える開発用SMTPサーバ メール挙動の確認のために、開発用SMTPサーバが用意されている 以下を一行で実行すれば、1025番でSMTPサーバが立ち上がる。
Djangoのsettings.pyに独自設定を定義するDjangoの設定はsettings.pyにいろいろ書かれています。
なので自分が作成するアプリケーション用の設定も同じく書いておきたいわけです。 それは、 http://djangoproject.jp/doc/ja/1.0/topics/settings.html#topics-settings にちゃんと書いてあるので、そこを見ればOKです。 要約すると 使うときですが、利用するファイルで |
月: 2016年10月
ユーザ認証
・settings.pyのINSTALLED_APPSにデフォルトでは次のアプリが含まれているはずなので、有無を確認
1 2 3 4 5 6 7 |
urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'accounts/login.html'}), url(r'^logout/$', 'django.contrib.auth.views.logout', {'template_name': 'accounts/logged_out.html'}), ) |
■login_required
デコレータを使えば,ページの閲覧をログイン済みのユーザだけに制限することが出来る.
1 2 3 4 5 |
from django.contrib.auth.decorators import login_required @login_required def my_view(request): ... |
Django tuttorial
Django公式サイトのチュートリアル https://docs.djangoproject.com/en/1.8/intro/tutorial01/
Django form
<input id=”id_subject” type=”text” name=”subject” maxlength=”100″ /></p>
ruby
http://www.rubylife.jp/ini/
文法
- Rubyでは基本的に1つの処理を行うプログラムを1行に記述する
- そして改行が1つの処理の区切りとなる。改行の代わりにセミコロン(;)を使用することも可能。
-
1プログラム中にコメントを記入する場合は #コメント。複数行に渡るコメントは、以下のようにbeginとendでくくる。
1 2 3 4 5 6 7 8 9 10 11 |
=begin ドキュメント ドキュメント ドキュメント =end <b> </b>コマンドプロンプトに表示するメソッドとして、putsメソッド以外にprintメソッドとpメソッドがあります。 printメソッドは引数の値を出力した後改行しません。pメソッドは、引数の値を文字列なのか数値なのかわかりやすく表示することができます。 開発するにあたって引数の値を厳密に表示したい際に便利です。 |
1 |
1 2 |
<b><span style="font-size: large;">変数と定数</span></b> 小文字から始めると変数、大文字から始めると定数で扱われる。 |
1 |
1 |
a = "test" <==変数となるので、後から別の値の代入可能 |
1 |
A = "test" <==定数扱いとなり、あとから別の値を入れようとするとエラー表示される |
1 |
1 |
<span style="font-size: large;"><b>ダブルクォートとシングルクォートの違い</b></span> |
1 |
<span style="font-size: medium;">ダブルクォート”は変数の読み込みが可能、シングルクォートは無理</span> |
1 |
<span style="font-size: medium;">aaaa=" hogehoge"</span> |
1 |
<span style="font-size: medium;">例:puts "test #{aaaa}" </span> |
1 |
puts 'test #{aaaa}' |
1 |
出力結果は |
1 |
test hogehoge <==ダブルクォートの場合は変数に入れた値が表示される |
1 |
test #{aaaa} |
1 |
1 2 |
<span style="font-size: medium;">破壊的メソッド</span><b> </b>元データを書き換えたいときに使う。 |
1 |
1 |
<span style="font-size: medium;"> </span> |
1 |
<span style="font-size: medium;">================================</span> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<span style="font-size: medium;"> irb</span><b> </b>対話型 Rubyである。コンソールでコマンドを打つたびに評価結果が表示されるもの. 手軽に試すときに便利です <b>http://www.kkaneko.com/rinkou/ruby/tryiruby.html http://doc.ruby-lang.org/ja/1.8.7/library/irb.html </b><span style="font-size: medium;"><b>RDE(統合開発環境)</b> </span>プログラム言語「Ruby」を扱っている人なら誰もが知るはずの定番ソフト。コードの入力からデバック・実行までをこのRDE上で行うことができます。つま り、この手の言語にありがちな「コード入力⇒ファイル保存⇒コマンドプロンプトから実行」という手順を踏まず、RDE上で実行ボタンを押すだけですぐに実 行結果が確認できるのです。コード入力部分はタブ形式になっていて、複数のファイルを同時に開くことが可能。入力支援、HELP機能も充実しているので、 初心者のRuby入門にも最適です。 RDEインストール http://rubyde.sourceforge.net/hiki/ja/install_for_beginner.html RDEのヘルプはhttp://rubyforge.org/frs/?group_id=3959 から、<a href="http://rubyforge.org/frs/download.php/23513/rubymanjp_20070802.zip" rel="nofollow">rubymanjp_20070802.zip</a> をダウンロード。 <span style="font-size: medium;"><b>RubyGems</b></span> RubyGemsはRubyで利用されるパッケージ管理システムです。 RubyやRailsで使用するパッケージやライブラリをRubyGems経由でダウンロードすることができます。 Ruby1.9.3をお使いの場合はRubyGemsが最初からインストールされています。 |
Ruby on Rails
http://www.rubylife.jp/rails/
RubyOnRails を使ってみる http://jp.rubyist.net/magazine/?0004-RubyOnRails
1 |
1 2 3 4 5 6 7 |
<span style="font-size: medium;"><b>RUBY関連リンク</b></span> <span style="font-size: small;"> 「</span><span style="font-size: small;">コピペで学ぶ Rubyでプログラミング入門 (MS Win版 </span>http://monge.tec.fukuoka-u.ac.jp/Ruby19x/0_ruby00.html#basic01 Rubyの歩き方 http://jp.rubyist.net/magazine/?FirstStepRuby |
リバースプロキシ経由のinotesの構成
参考資料: LDD Today: iNotes Web AccessをWebSphere Edgeリバース・プロキシー・サーバーを活用して使った構成
Apache as a reverse proxy for IBM Domino iNotes with home server redirection
IBM HTTP Server(IHS)をDomnoと同居させて利用
rubyでの正規表現
http://www.geocities.jp/m_hiroi/light/abcruby05.html
メタ文字 | 意味 |
---|---|
| | この前後にある正規表現のどちらかと一致する |
* | 直前の正規表現の 0 回以上の繰り返しに一致する |
+ | 直前の正規表現の 1 回以上の繰り返しに一致する |
? | 直前の正規表現に 0 回もしくは1回一致する |
{m,n} | 直前の正規表現の m 回以上 n 回以下の繰り返し |
*? | 直前の正規表現の 0 回以上の繰り返しに一致する(最短一致) |
+? | 直前の正規表現の 1 回以上の繰り返しに一致する(最短一致) |
?? | 直前の正規表現に 0 回もしくは1回一致する(最短一致) |
{m,n}? | 直前の正規表現の m 回以上 n 回以下の繰り返し(最短一致) |
[ ] | [ ] 内に指定した文字のどれかと一致する |
[^ ] | [ ] 内に指定した文字でない場合に一致する |
. | 任意の1文字と一致する |
^ | 行頭と一致する |
$ | 行末と一致する |
( ) | 正規表現をグループにまとめる |
\ | メタ文字を打ち消す |
\A | 文字列の先頭と一致 |
\b | 単語境界と一致 (\w と \W の間の空文字列と一致) |
\B | \B 以外と一致 |
\d | 数字と一致 ([0-9] と同じ) |
\D | \d 以外と一致 |
\s | 空白文字と一致 ([ \t\n\r\f] と同じ) |
\S | \s 以外と一致 |
\w | 英数字とアンダースコア _ に一致 ([_a-zA-Z0-9] と同じ) |
\W | \w 以外と一致 |
\Z | 文字列の末尾と一致 |
ruby環境セットアップ
Redhat Linuxでrubyインストール
yum でRubyをインストールすることもできるが、バージョンがかなり古いため、Rubyをインストールする際はソースからビルドするhttp://blog.takkinoue.com/entry/2014/12/16/225442
Redhat Linuxでrubygemsインストール rubygemsとはrubyのリポジトリ管理システム。
○rubyでmailを扱う場合、mailライブラリをインストする。
○エディタ
Ruby用エディタ:Sublime-Text
http://matome.naver.jp/odai/2138657649717812101 http://tigawa.github.io/blog/2014/03/09/st3-win-ruby/
|
EPELとは
EPEL は “Extra Packages for Enterprise Linux” の略。すなわち、Red Hat Enterprise Linux や CentOS 向けに、Fedora Project によって開発・テスト・改良されているパッケージ群を使えるようにするためのリポジトリです。
早い話、Fedora Project で開発されている、サードパーティ製のパッケージ群。Red Hat 社から提供されているリポジトリとは別に、Fedora では比較的新しいパッケージが提供されているのが特長です。
単にリポジトリが提供されているのではなく、RHEL がサポートされている期間は、EPEL リポジトリに含まれるパッケージも、同様にメンテナンスされます。またRHELに含まれるパッケージとは競合や干渉しないように努められています。
これまでも、サードパーティ製のパッケージやリポジトリを統合する動きはありましたが、多くが失敗に終わったようです。EPEL プロジェクトは、研究グループとしてではなく、それが1つのプロジェクトとしてスタートしています。何年もの時間をかけた後、FESCo(Fedora運営グループ)で承認を受け、現在のプロジェクトに至ります