Blog ページ1/2

FreeBSD11+python3.6+Bottleで作り直すメモ(12)-nginxとcertbotでリバースプロキシ

今日びのWebsiteはhttpsじゃないとダメとかいわれているので、別サーバ(FreeBSD12.1のルータ)にインストールしたnginxでリバースプロキシを動かしつつ、Let's Encryptでhttps化を試みる。

(続きあり)


FreeBSD11+python3.6+Bottleで作り直すメモ(11)-nginxとuWSGIで公開してみる

FreeBSDのポリシーが変わって2018年10月いっぱいでFreeBSD 10-Releaseは終了したとのことなのでタイトル変更。

これまではBottleが内蔵していたWebサーバで動作確認を行っていたが性能がいまいちなので実運用するなら適当なWSGIサーバを使ってね、とマニュアルにも書かれているので検討してみる。基本的にはh_kabocha氏によるBottle + uWSGI+ Nginx Quick Tutorialのやり方をそのまま使わせて頂いた。ここではFreeBSD環境特有の箇所のみ記載する。

(続きあり)


サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(10)-ステータスコードとリダイレクト

サイトを作っていると、

といったことをやりたい場合がある。

Bottleでは、abort(ステータスコード, テキスト)redirect(リダイレクト先のURL, ステータスコード)という関数を使うことで上記のことを実現できるようになっている。具体的にはこんな感じ。

from bottle import route, run, abort, redirect

@route('/<filepath:path>')
def abort_and_redirect(filepath):
  if filepath=='404error':
    abort(404, 'Not Found')
  elif filepath=='old/contents':
    redirect('http://somewhere/new/contents', 301)

サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(9)-Cookie

クッキーの設定

クッキーの設定にはresponse.set_cookieを使う。下の例ではpostメソッドで取得したフォームデータをmydomain.comドメイン共通のクッキーとして設定する。デフォルトではクッキーはすぐ消滅するとのことなので変数max_ageを使って期限を一年に設定している。

from bottle import route, run, post, request, response

@post('/set_cookie')
def set_cookie():
  max_age = 3600 * 24 * 365
  cookie = request.forms.getunicode('cookie')
  response.set_cookie('cookie', cookie,
    max_age=max_age,
    domain='mydomain.com',
    path='/')

クッキーの取得

ブラウザから送られるクッキーの取得はrequest.get_cookieを使う。

from bottle import route, run, request

@route('/get_cookie')
def get_cookie():
  cookie = request.get_cookie('cookie', default='')

サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(8)-javascriptで夏時間

ブログなんかの作成/更新日時は日本時間で管理するつもりだが、「現地時間も併記できるとカッコいいよね」と思った次第。ささやかながら英語のコンテンツもあるしね。

表示できるようにしたいのは以下の3点。

あまりクライアントサイドのプログラミングって詳しく無いけど(むろんサーバサイドもせいぜいカジュアルレベルだけどそれ未満)、javascriptにうってつけの機能があるみたい。

DateオブジェクトのgetTimezoneOffset()メソッドがそれで、Dateオブジェクトが指す日時に対する標準時への時間差を分単位で示してくれるようだ(+09:00の日本時間なら-540)。夏時間かどうかを判別するルーチンがabout.comにあったのでそれをそのままありがたく使わせてもらおう[archive]

(続きあり)


サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(7)-MariaDB:FULLTEXTインデックス

たたみラボさんのところの記事を元にMariaDBにFULLTEXTインデックスを設定してみた。

(続きあり)


サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(6)-py-mecab

サイトを作るに当たって「やっぱ全文検索機能は欲しいよね」ということで調べてみた。どうやらMySQLのFULLTEXTインデックスを使うといいらしい。で、日本語でFULLTEXTインデックスを機能させるには、分かち書きのデータを用意しておく必要があるとのこと。コンテンツを作成、更新する際に分かち書きのデータを作成して保存するようにすればいいのかな

(続きあり)


サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(5)-フォームの扱い

GETメソッドの場合

getメソッドの場合はrequest.queryを使う。

from bottle import route, run, request

@route('/')
def root():
  id = request.query.id

(続きあり)


サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(4)-pymysql

手順としてはこんな感じ

準備

con = pymysql.connect(
        host='接続先のIPアドレス',
        port=ポート番号,
        db='データベース名',
        user='ユーザ名',
        passwd='パスワード',
        charset='utf8mb4')
cur = con.cursor()

connectメソッドとcursorメソッドを順番に実行。connectメソッドのcharsetはMySQL(or MariaDB)の設定に応じて適宜変更する。

(続きあり)


サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(3)-とりあえず何か書いてみる

とりあえずお約束のHello, Worldでも。

(続きあり)


Blog category: Ultima | Adventure games | BSD and Linux | FM TOWNS and Japanese home computers | Computers | Bottle | 広島新球場 | 日本プロ野球 | 広島市民球場跡地とサッカースタジアム | その他スポーツ | Other topics
2002 08 09 10 11 12
2003 01 02 03
2004 01 02 03 04 06 08 09 10 11 12
2005 01 02 03 04 05 06 07 08 09 10 11 12
2006 01 02 03 04 05 06 07 08 09 10 11 12
2007 01 02 03 04 05 06 07 08 09 10 11 12
2008 01 02 03 04 05 06 07 08 09 10 11 12
2009 01 02 04 05 06 07 09 10
2010 01 03 04 05 08 11
2011 01 02 03 04 07 11 12
2012 01 02 03 09 10 11
2013 01 02 03 05 06 07 08 09 10 11 12
2014 01 02 03 04 05 06 07 10 11 12
2015 01 02 03 04 05 07 08 11 12
2016 03 04 05 07 08 09 10 11
2017 06
2018 11 12
2019 01 04 10
2020 05 06 07

Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。