31年目のRealize

プログラミング、イラスト、家族の事を書いたりするブログにする予定

Djangoに触れてみる

再スタート

ひとまず心のモヤモヤも晴れ、やっと本筋に戻ることができました。心なしか、以前よりテキスト読みやすくなった気がします。

たぶん気のせい。

仮想OS上でWebサーバを動かす

閑話休題(使ってみたかっただけ)

3週間も経ってどこまでやったかあやふやですが、確かWin10のPC上の仮想マシンにCentOS7をインストールするところまでやっていました。

Webサーバソフトをインストール

CentOSにWebサーバ機能を持たせます。 Webサーバといえば、apacheが有名で、今読んでいるテキストもそれを導入しています。

しかし最近はnginx(エンジンエックス)というソフトが普及してきているらしく、今後主流になりそうなので、こちらを入れてみました。

apacheには「C10k問題」という、1つのWebサーバにクライアントが1万台接続すると、動作が重くなってしまう問題があります。

その点nginxは軽量でかつ1つのプロセスで複数のリクエストを処理する「イベント駆動モデル」であり、クライアント台数が1万台を超えても余裕で動く。

…という特徴があるので、ユーザ数が多いWebシステムにおいて利点があります。

そんなでかいシステム作れませんが、流行りに乗っておきたい。

インストール自体は簡単で、CentOSに含まれているyumコマンドで一発!

  1. rootユーザで、/etc/yum.repos.d/nginx.repoファイルを作成し、以下の内容で保存。これで、yumコマンドで参照するリポジトリが追加される。

    [nginx]

    name=nginx repo

    baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/

    gpgcheck=0

    enabled=1

  2. そして、yum install nginxコマンドを実行!終わり!
  3. 一応、バージョン確認コマンドnginx -vで、インストール成功しているのを確認。

やっとDjango

やっとDjango(ジャンゴ)に戻ってきました。 Webサーバの準備はできたので、そこに乗せるWebアプリを作っていきます。

pythonをインストールした際についでに入っているpipツールでDjanoをインストールできました。yumpython版ってところですかね?

プロジェクト作成

ここから、Webアプリ開発に便利なフレームワークを使っていきます。

django-admin startproject プロジェクト名のコマンドでプロジェクト用ディレクトリが作成され、その中に部品達が生成されます。 中でもmanage.pyというpythonファイルの部品が、アプリを作るための各種雛形ファイルを作ってくれたり、開発用の簡易サーバを起動したりしてくれるみたいです。

  • python manage.py runserverでサーバ起動。(ポートは8000番)
  • python manage.py startapp アプリ名でアプリ用雛形作成。

Webアプリ用の雛形ファイル

主要なものをメモメモ。

view.py

画面に何を表示させるか、どんな処理をするかを記述する。

apps.py

アプリケーションの設定を記述する。

models.py

データベース関係のファイル。

admin.py

管理画面の設定を記述する。

urls.py(これは自作)

URLと、呼び出される処理の関係を記述する。

今週はこんなところ。

今後の予定

今読んでいる本をマスターするまでは、と思っていましたが衝動買いしてしまった。

以前の投稿で書いた、直近で欲しいアプリを作るための技術「スクレイピング」(Webサイトのデータを取得するもの)について記述があったのでつい…。

altrlz.hateblo.jp

積み本が増えないように早く進めなければ…。