Django 簡単なサンプル
環境はPython2.5 + Django version 1.0で作成。
DjangoはGoogle App Engineでも採用されているので人気もあるみたいです
さて今回は簡単な掲示板アプリを作成します。
DBの準備
データを格納するDB:MySQLを使用します。文字コード:UTF-8です
create database dj_simple_note default character set utf8 ;
settings.pyの編集
データベースの設定をします
ユーザーID、パスワード、DB名、ポートを指定します
DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'dj_simple_note' # Or path to database file if using sqlite3.
DATABASE_USER = 'ユーザー名' # Not used with sqlite3.
DATABASE_PASSWORD = 'パスワード' # Not used with sqlite3.
DATABASE_HOST = 'localhost' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '3306' # Set to empty string for default. Not used with sqlite3.
アプリケーション名(pad)を追加します
タイムゾーンと言語を日本にあわせます
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'pad',
)
TIME_ZONE = 'Japan/Tokyo'
LANGUAGE_CODE = 'ja'
models.py モデルの作成とDB反映
投稿記事モデルを設定します。記事の項目は(タイトル、本文、投稿日時)とします。
class Note(models.Model):
title = models.CharField(max_length=50)
desc = models.TextField()
created = models.DateTimeField()
class Meta:
db_table= "notes"
url.pyの編集
URLマッピング・ルーティングの定義を設定します
from django.conf.urls.defaults import *
from django.conf import settings
from django.contrib import admin
from django.views.generic.list_detail import object_list,object_detail
from django.views.generic.create_update import create_object,update_object,delete_object
from django.views.generic.simple import redirect_to
from django.template import loader,RequestContext# MODEL
from simple_note.pad.models import Noteurlpatterns = patterns('',
(r'^note/list/*$',
object_list,
dict(queryset=Note.objects.all().order_by('-id'), paginate_by=5)
),
(r'^note/add/*$',
create_object,
dict(model=Note,post_save_redirect='/note/list/')
),
(r'^note/update/(?P\d+)/$',
update_object,
{'model':Note, 'post_save_redirect':'/note/list/', }
),
(r'^note/delete/(?P\d+)/$',
delete_object,
dict(model=Note, post_delete_redirect='/note/list/')
),
)
urls.py を分割したい場合
url.pyはどうしても行数が長くなります。
そんな場合はinclude(path)を使用し別ファイルに分割することができます
(r'^note/', include('simple_note.pad.urls'))
*simple_note/pad/urls.pyが使用されます
テンプレ−トの配置場所
urls.pyの直下にディクトリを作成します、
各テンプレートファイルをtemplates/padの下に置きましょう
TEMPLATE_DIRS = (
"templates",
)
テンプレ−トの作成
表示するそれぞれ画面を作成します。今回は作成するページのテンプレートはは作成しません
以下のような名前にするとテンプレートのファイル名を指定する必要がありません。
もしテンプレート名を変更(既定外に)したい場合はurls.pyで指定できます。
(一覧)note_list.html
(編集・追加共通)note_form.html
(削除確認)note_confirm_delete.html
(詳細)note_detail.html
各テンプレートは別記します
PHP4 オブジェクト指向でモデル作成
<?php class BaseModel { var $id=""; var $name=""; // php4 function model1 ($name=null){ //echo PHP_VERSION; $this->name= $name ; } function __construct ($name=null){ $this->name= $name ; } function speak ($word){ echo $word ; } function cry (){ } function move (){ } function read_all (){ $sql ="select * from base"; return $sql; } } ?>
<?php require "base_model.php"; class model1 extends BaseModel{ //var $id=""; var $name=""; var $age=""; var $sex=""; var $weight=""; function read_all (){ $sql ="select * from items"; return $sql; } } ?>
<?php require "model1.php"; $m = new model1("suzuki"); echo "<br>"; $m->speak("hello"); echo "<br>"; print_r($m); echo "<br>"; echo $m->read_all(); ?>
Fedora3 設定その1:Samba
訳在ってFedora3の設定を修学しないとならないことに
かなり古いバージョンなのですが
Samba
# 確認
chkconfig --list | grep smb
# runlebel=3,5で起動設定します
chkconfig --level 35 smb on
/etc/init.d/smb restart
# ユーザーパスワードの作成
smbpasswd -a ユーザー名
smb.confの編集
(File: /etc/samba/smb.conf)
/var/www/htmlをWebデータの公開ディレクトリとしますので編集が出来る様にしました
また、ユーザーホームにアクセスできるようにしました
[www_html]
comment = Web Server HTML
path = /var/www/html
guest ok = yes
writable = yes
[homes]
comment = Home Directories
browseable = no
writable = yes