<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Love web applications &#187; Django</title>
	<atom:link href="http://blog.hitsuji.me/category/django/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hitsuji.me</link>
	<description>Webアプリつくるの楽しい！つくるネタ、使うネタ、あとは雑談です。</description>
	<lastBuildDate>Sun, 25 Jan 2015 12:49:45 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>DjangoのセレクトフォームのOptionタグにclass属性を追加する</title>
		<link>http://blog.hitsuji.me/how-to-add-class-attributes-to-option-tags-of-select-menu-on-django-project/</link>
		<comments>http://blog.hitsuji.me/how-to-add-class-attributes-to-option-tags-of-select-menu-on-django-project/#comments</comments>
		<pubDate>Thu, 02 Oct 2014 13:49:34 +0000</pubDate>
		<dc:creator><![CDATA[kapibarawebmaster1515]]></dc:creator>
				<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://blog.hitsuji.me/?p=204</guid>
		<description><![CDATA[ご無沙汰しました。公私ともちょっと忙しくしておりました。 &#160; 今日の内容は、タイトルの通りなのですが、Djangoのフォーム・セレクトメニューのOptionタグにclass指定する方法につい・・・<a class="readon" href="http://blog.hitsuji.me/how-to-add-class-attributes-to-option-tags-of-select-menu-on-django-project/">続きを読む</a>]]></description>
				<content:encoded><![CDATA[<p>ご無沙汰しました。公私ともちょっと忙しくしておりました。</p>
<p>&nbsp;</p>
<p>今日の内容は、タイトルの通りなのですが、Djangoのフォーム・セレクトメニューのOptionタグにclass指定する方法についてです。</p>
<p>&nbsp;</p>
<p>具体的には、こんなソースを出力したい訳です。</p>
<pre class="command">&lt;form method="post" action="index"&gt;
 &lt;select name="menu"&gt;
  &lt;option value="banana" <span style="color: #99ccff;">class="fruits"</span>&gt;バナナ&lt;/option&gt;
  &lt;option value="apple" <span style="color: #99ccff;">class="fruits"</span>&gt;りんご&lt;/option&gt;
  &lt;option value="tomato" <span style="color: #ff9900;">class="vegetables"</span>&gt;とまと&lt;/option&gt;
  &lt;option value="carrot" <span style="color: #ff9900;">class="vegetables"</span>&gt;にんじん&lt;/option&gt;
 &lt;/select&gt;
 &lt;input type="submit" value="send" /&gt;
&lt;/form&gt;</pre>
<p>&nbsp;</p>
<p>何故そのようなことがしたいかと言えば、ここで指定したclassに応じて、jQueryで各optionタグの表示/非表示を切り替えたいからです。</p>
<p>&nbsp;</p>
<p>さて、私のケースではデータベースに保存したレコードを元にメニューを作成したいので、forms.ModelChoiceFieldを使ってセレクトメニューを出力することにします。</p>
<p>このforms.ModelChoiceFieldのルートクラスは、forms.Fieldです。forms.ModelChoiceFieldに限らず、django.formsでの各種フィールドは、forms.Fieldのサブクラスです。forms.Fieldでコアな処理を行い、それと関連づけられたforms.widgets.WidgetのサブクラスでHTML出力を行うという構成らしい。</p>
<p>&nbsp;</p>
<p>forms.ModelChoiceFieldクラスのHTML出力クラスを確認すると、forms.widgets.Selectクラスだと分かりました。</p>
<p>&nbsp;</p>
<p>そこで、forms.widgets.Selectクラスのoptionタグ出力を行っているソースコードを確認します。</p>
<h6> widgets.py</h6>
<pre class="command">def render_option(self, selected_choices, option_value, option_label):
  option_value = force_text(option_value)
  if option_value in selected_choices:
    selected_html = mark_safe(' selected="selected"')
    if not self.allow_multiple_selected:
      # Only allow for a single selection.
      selected_choices.remove(option_value)
    else:
      selected_html = ''
    return format_html('&lt;option value="{0}"{1}&gt;{2}&lt;/option&gt;',
                       option_value,
                       selected_html,
                       force_text(option_label))</pre>
<p>残念ながら、引数でclass指定とかは出来ない内容。</p>
<p>&nbsp;</p>
<p>そこで、</p>
<ol>
<li>forms.ModelChoiceFieldのサブクラスを作成</li>
<li>forms.widgets.Selectのサブクラスを作成</li>
<li>#2のrender_option関数をオーバーライト。まずは元のrender_otpionのソースを丸々コピーして、class属性を出力する内容に書き換える</li>
<li>#1のinit処理において、super.__init__を呼び出す。その引数のkwargsで#2で作成したクラスをwidget（=HTML出力クラス）として追加する。</li>
</ol>
<p>のようなフローで実装することに決定。</p>
<p>&nbsp;</p>
<h6>myapp.forms</h6>
<script src="https://gist.github.com/14d794ca037f2d56f0ba.js"></script><noscript><pre><code class="language-python python"># -*- coding: utf-8 -*-
from django import forms
from myapp.models import DataGroup # Overwrite this to your model
from django.utils.encoding import force_text
from django.utils.safestring import mark_safe
from django.utils.html import format_html

class DataGroupSelect(forms.widgets.Select):
    
    def render_option(self, selected_choices, option_value, option_label):
        option_value = force_text(option_value)
        if option_value in selected_choices:
            selected_html = mark_safe(' selected=&quot;selected&quot;')
            if not self.allow_multiple_selected:
                # Only allow for a single selection.
                selected_choices.remove(option_value)
        else:
            selected_html = ''
        # get class attrs (customize class_attr by yourself)
        class_attr = 'xxxxxx'
        return format_html('&lt;option value=&quot;{0}&quot;{1} class=&quot;{3}&quot;&gt;{2}&lt;/option&gt;',
                           option_value,
                           selected_html,
                           force_text(option_label),
                           class_attr)

class DataGroupModelChoiceField(forms.ModelChoiceField):
    
    def __init__(self,*args,**kwargs):
        kwargs['widget'] = DataGroupSelect
        super(DataGroupModelChoiceField, self).__init__(*args,**kwargs)

class MyForm(forms.Form):
    datagroup_id = DataGroupModelChoiceField(queryset=DataGroup.objects.all())</code></pre></noscript>
<p>&nbsp;</p>
<p>これをviews.pyから</p>
<pre class="command">form = MyForm()</pre>
<p>とインスタンス生成すればOKです。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitsuji.me/how-to-add-class-attributes-to-option-tags-of-select-menu-on-django-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Djangoのユーザー認証機能を利用する</title>
		<link>http://blog.hitsuji.me/use-template-files/</link>
		<comments>http://blog.hitsuji.me/use-template-files/#comments</comments>
		<pubDate>Tue, 19 Aug 2014 06:06:38 +0000</pubDate>
		<dc:creator><![CDATA[kapibarawebmaster1515]]></dc:creator>
				<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://blog.hitsuji.me/?p=191</guid>
		<description><![CDATA[こんにちは。相変わらず暑い日が続きますね。お盆休みということで更新をお休みしていましたが、再開します。 さて今日はDjangoで、ユーザー認証を行う方法について書いておきます。 注：Djangoはv1・・・<a class="readon" href="http://blog.hitsuji.me/use-template-files/">続きを読む</a>]]></description>
				<content:encoded><![CDATA[<p>こんにちは。相変わらず暑い日が続きますね。お盆休みということで更新をお休みしていましたが、再開します。</p>
<p>さて今日はDjangoで、ユーザー認証を行う方法について書いておきます。 <em><span style="color: #808080;">注：Djangoはv1.6です</span></em></p>
<p>&nbsp;</p>
<h3>Samples＠GitHub</h3>
<ul>
<li>編集前のプロジェクト：<a title="before" href="https://github.com/hitsujixgit/django_myauth/tree/5e332cc154fe498320aca2dc18b4682ff20e748c" target="_blank">before</a></li>
<li>編集後のプロジェクト：<a title="after" href="https://github.com/hitsujixgit/django_myauth/tree/eca62da9acf78cc9e2ba9e0b64ede994eb43dac6" target="_blank">after</a></li>
</ul>
<p>&nbsp;</p>
<h3>特定ページアクセス時にユーザー認証を求めるように設定する</h3>
<p>特定のページにユーザー認証保護をかけます。Djangoにはユーザー認証用のツールが用意されています。settings.pyのINSTALLED_APPSにデフォルトでは次のアプリが含まれているはずなので、有無を確認しておきます。</p>
<pre class="command">'django.contrib.auth'</pre>
<p>もし無ければ追記すればOKです。</p>
<p>&nbsp;</p>
<h4>トップページにユーザー認証保護をかける</h4>
<p>まずは、トップページにユーザー認証保護をかけてみます。下記4ファイルを記述していきます。</p>
<p>&nbsp;</p>
<h6>settings.py</h6>
<p>ログインURLを指定する１行を追加します。</p>
<h6>urls.py</h6>
<p>ログインURLを、urlpatternsに追加します。また、myapp.views.index.pageを開くときにユーザー認証を求めるよう設定します。</p>
<h6>login.py</h6>
<p>myapp/view/login.pyを新規作成して、ログイン処理を記述します。</p>
<h6>login.html</h6>
<p>ユーザー名とパスワード入力を求める画面を表示するテンプレートです。</p>
<p>&nbsp;</p>
<script src="https://gist.github.com/b002b2bb584391911e3b.js"></script><noscript><pre><code class="language-html html">{% extends &quot;base.html&quot; %}
{% block title_html %}
User login form
{% endblock %}
{% block article_content %}
    {% if user.is_authenticated %}
    	&lt;!-- Authenticated. --&gt;
        &lt;h1&gt;You are connected.&lt;/h1&gt;
        &lt;p&gt;Your email : {{ user.email }}&lt;/p&gt;
        &lt;p&gt;&lt;a href=&quot;/&quot;&gt;Return to home&lt;/a&gt;&lt;/p&gt;
    {% else %}
    	&lt;!-- Not authenticated --&gt;
        &lt;h1&gt;User login form&lt;/h1&gt;
        &lt;form method=&quot;post&quot; action=&quot;{{ user_login }}&quot;&gt;
        {% csrf_token %}
        &lt;table&gt;
            {{ form.as_table }}
        &lt;/table&gt;
        &lt;input type=&quot;submit&quot; class=&quot;button&quot; value=&quot;Login&quot; /&gt;
        &lt;/form&gt;
    {% endif %}
{% endblock %}</code></pre><pre><code class="language-python python"># -*- Coding: utf-8 -*-
from django.shortcuts import render, redirect
from django import forms
from django.contrib.auth import authenticate, login

def page(request):
    
    if request.POST:
        form = Login_form(request.POST)
        if form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    login(request, user)
                    if request.GET.get('next') is not None:
                        # Redirect to a success page.
                        return redirect(request.GET['next'])
    
    # New form when not the request is get.
    else:
        form = Login_form()
    return render(request, 'jp/login.html', {'form' : form})

class Login_form(forms.Form):
    username = forms.CharField(label=&quot;User name&quot;)
    password = forms.CharField(label=&quot;Password&quot;, widget=forms.PasswordInput)
    def clean(self):
        cleaned_data = super(Login_form, self).clean()
        username = self.cleaned_data.get('username')
        password = self.cleaned_data.get('password')
        if not authenticate(username=username, password=password):
            raise forms.ValidationError(&quot;Wrong user name or passwsord&quot;)
        return self.cleaned_data</code></pre><pre><code class="language-python python"># Authentification
LOGIN_URL = 'user_login'</code></pre><pre><code class="language-python python">from django.contrib.auth.decorators import login_required
from django.views.generic import TemplateView

urlpatterns = patterns('',
    url(r'^login/$','myapp.views.login.page', name=&quot;user_login&quot;),
    url(r'^$', login_required(TemplateView.as_view(template_name='jp/index.html')), name=&quot;index&quot;),
    #url(r'^$', 'myapp.views.index.page', name=&quot;index&quot;),
    url(r'^admin/', include(admin.site.urls)),
)</code></pre></noscript>
<p>&nbsp;</p>
<p>ここまで実装してからサーバーを実行し、http://127.0.0.1:8000にアクセスすると、自動的に/login/にリダイレクトされてユーザー認証を求める画面が表示されます。</p>
<p>&nbsp;</p>
<p><a href="http://blog.hitsuji.me/app/wp-content/uploads/2014/08/login_form.png"><img class="alignnone size-medium_for_2x wp-image-194" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/08/login_form-600x470.png" alt="login_form" width="300" height="235" /></a></p>
<p>&nbsp;</p>
<p>South実行時に入力したユーザー名＆パスワードを入力すれば、トップページが表示されます。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>ログアウト機能を実装する</h4>
<p>続いてログアウト処理を実装します。下記４点を実装します。</p>
<h6>urls.py</h6>
<p>ログアウトURLを追加します。</p>
<h6>login.py</h6>
<p>myapp/view/loout.pyを新規作成して、ログアウト処理を記述します。</p>
<h6>login.html</h6>
<p>ログアウト処理が成功した後で表示する画面のテンプレートです。</p>
<h6>index.html</h6>
<p>ログイン・ログアウトへのリンクを追加します。</p>
<p>&nbsp;</p>
<script src="https://gist.github.com/1d65803abbd7a4289fc4.js"></script><noscript><pre><code class="language-html html">{% extends &quot;base.html&quot; %}
{% block title_html %}
Django Test Page
{% endblock %}
{% block h1 %}
Hello world
{% endblock %}
{% block article_content %}
&lt;p&gt;Welcome to Django world!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;login&quot;&gt;Your Account&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;logout&quot;&gt;Logout&lt;/a&gt;&lt;/p&gt;
{% endblock %}</code></pre><pre><code class="language-html html">{% extends &quot;base.html&quot; %}
{% block title_html %}
Logout
{% endblock %}
{% block h1 %}
Logout successful.
{% endblock %}
{% block article_content %}
&lt;p&gt;&lt;a href=&quot;/&quot;&gt;Return to home&lt;/a&gt;&lt;/p&gt;
{% endblock %}</code></pre><pre><code class="language-python python"># -*- Coding: utf-8 -*-
from django.shortcuts import render
from django.contrib.auth import logout

def page(request):
    logout(request)
    return render(request, 'jp/logout.html')</code></pre><pre><code class="language-python python">urlpatterns = patterns('',
    url(r'^logout/$', 'myapp.views.logout.page', name=&quot;user_logout&quot;),
    #...other urls.
)</code></pre></noscript>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>ユーザー追加機能を実装する</h4>
<p>続いてユーザー追加機能を実装してみます。上で作成したサンプルを改変してトップページにかけた認証保護を外します。トップページには</p>
<ul>
<li>ログイン</li>
<li>ログアウト</li>
<li>ユーザー追加</li>
</ul>
<p>の３メニューを表示します。ユーザー追加ページにはユーザー認証を求めるようにし、つまり既存のログインユーザーが新たなユーザーを作成できるような仕様にしてみます。</p>
<script src="https://gist.github.com/cbe0cb4235e2b7a177c7.js"></script><noscript><pre><code class="language-html html">{% extends &quot;base.html&quot; %}
{% block title_html %}
Add user form
{% endblock %}
{% block h1 %}
Add user form
{% endblock %}
{% block article_content %}
    &lt;form method=&quot;post&quot; action=&quot;{{ add_user }}&quot;&gt;
    {% csrf_token %}
    &lt;table&gt;
        {{ form.as_table }}
    &lt;/table&gt;
    &lt;input type=&quot;submit&quot; class=&quot;button&quot; value=&quot;Login&quot; /&gt;
    &lt;/form&gt;
    &lt;p&gt;&lt;a href=&quot;/&quot;&gt;Return to home&lt;/p&gt;
{% endblock %}</code></pre><pre><code class="language-python python"># -*- Coding: utf-8 -*-
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django import forms
from django.contrib.auth.decorators import login_required

@login_required
def page(request):
    if request.POST:
        form = MyUserCreationForm(request.POST)
        if form.is_valid():
            username       = request.POST['username']
            password       = request.POST['password']
            email          = request.POST['email']
            new_user = User.objects.create_user(username = username, email = email, password=password)
            new_user.is_active = True
            new_user.save()
            return render(request, 'jp/add_user_successful.html')
    
    else:
        form = MyUserCreationForm()
    return render(request, 'jp/add_user.html', {'form' : form})

class MyUserCreationForm(forms.Form):
    username = forms.CharField(label = &quot;User name&quot;)
    password = forms.CharField(label = &quot;Password&quot;, widget = forms.PasswordInput)
    password_bis = forms.CharField(label = &quot;Password&quot;, widget = forms.PasswordInput) 
    email = forms.EmailField(label = &quot;Email&quot;)
    def clean(self):
        cleaned_data = super(MyUserCreationForm, self).clean() 
        username = self.cleaned_data.get('username')
        password = self.cleaned_data.get('password') 
        password_bis = self.cleaned_data.get('password_bis')
        if password and password_bis and password != password_bis:
            raise forms.ValidationError(&quot;Passwords are not identical.&quot;)
        user_check = User.objects.filter(username = username).exists()
        if user_check:
            raise forms.ValidationError(&quot;Duplicate user name!&quot;)
        return self.cleaned_data</code></pre><pre><code class="language-html html">{% extends &quot;base.html&quot; %}
{% block title_html %}
Add user successful
{% endblock %}
{% block h1 %}
Add user successful
{% endblock %}
{% block article_content %}
    &lt;p&gt;&lt;a href=&quot;/&quot;&gt;Return to home&lt;/p&gt;
{% endblock %}</code></pre><pre><code class="language-html html">{% extends &quot;base.html&quot; %}
{% block title_html %}
Django Test Page
{% endblock %}
{% block h1 %}
Hello world
{% endblock %}
{% block article_content %}
&lt;p&gt;Welcome to Django world!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;login&quot;&gt;Your Account&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;logout&quot;&gt;Logout&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;add_user&quot;&gt;Add new user&lt;/a&gt;&lt;/p&gt;
{% endblock %}</code></pre><pre><code class="language-python python">from django.conf.urls import patterns, include, url
from django.contrib.auth.decorators import login_required
#from django.views.generic import TemplateView

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url (r'^add_user/$', 'myapp.views.add_user.page', name=&quot;add_user&quot;),
    url(r'^logout/$', 'myapp.views.logout.page', name=&quot;user_logout&quot;),
    url(r'^login/$', 'myapp.views.login.page', name=&quot;user_login&quot;),
    #url(r'^$', login_required(TemplateView.as_view(template_name='jp/index.html')), name=&quot;index&quot;),
    url(r'^$', 'myapp.views.index.page', name=&quot;index&quot;),
    url(r'^admin/', include(admin.site.urls)),
)</code></pre></noscript>
<p>&nbsp;</p>
<p>ここではユーザー認証の要否を判断する方法を変更してみました。</p>
<p>最初に使った方法はurls.pyのurlパターンを次のように記述することで実現していました。login_required()でテンプレート呼び出し関数を囲んで書く方法です。</p>
<pre class="command">url(r'^$', login_required(TemplateView.as_view(template_name='jp/index.html')), name="index"),</pre>
<p>&nbsp;</p>
<p>でも、ユーザー認証を求めるページが増えると面倒ですよね。もっとお手軽に書く方法があります。viewファイルのdef直前に下記１行を追加します。</p>
<pre class="command">@login_required</pre>
<p>&nbsp;</p>
<p>同様に、他のページに認証をかける場合も@login_requiredを挿入すれば認証機能が働きます。すなわち、ログアウト時に該当ページにアクセスすると、ログインページに自動的にリダイレクトされるようになります。</p>
<p>&nbsp;</p>
<p>ちょっと長いエントリーになりましたが、今日は以上です！</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitsuji.me/use-template-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse-PyDevプラグインでDjangoの開発をする</title>
		<link>http://blog.hitsuji.me/develop-django-projects-using-eclipse-with-pydev-plugin/</link>
		<comments>http://blog.hitsuji.me/develop-django-projects-using-eclipse-with-pydev-plugin/#comments</comments>
		<pubDate>Sat, 02 Aug 2014 07:55:47 +0000</pubDate>
		<dc:creator><![CDATA[kapibarawebmaster1515]]></dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[PyDev]]></category>

		<guid isPermaLink="false">http://blog.hitsuji.me/?p=180</guid>
		<description><![CDATA[こんにちは。今日はDjangoの開発環境の話です。 私はたいてい何でもEclipseで開発しているのですが、Djangoの開発は初めてなので使い方を調べました。 &#160; PyDevを使えばOK ・・・<a class="readon" href="http://blog.hitsuji.me/develop-django-projects-using-eclipse-with-pydev-plugin/">続きを読む</a>]]></description>
				<content:encoded><![CDATA[<p>こんにちは。今日はDjangoの開発環境の話です。</p>
<p>私はたいてい何でもEclipseで開発しているのですが、Djangoの開発は初めてなので使い方を調べました。</p>
<p>&nbsp;</p>
<h3>PyDevを使えばOK</h3>
<p>EclipseでDjangoを扱うには、Python開発用プラグインPyDevを入れればOKでした。PyDevにDjangoのデバッガも装備されています。</p>
<p>&nbsp;</p>
<p><span style="color: #808080;"><em>補足</em></span></p>
<p><span style="color: #808080;"><em>PyDevのインストールは、Eclipseメニューバー&gt;Help&gt;Install New Software&#8230;を選択して、Work withに下記URLを登録し、間もなく表示される&#8221;PyDev&#8221;をインストールすればOKです。</em></span></p>
<p><span style="color: #808080;"><em>http://pydev.org/updates</em></span></p>
<p>&nbsp;</p>
<p>Djangoのプロジェクトを作成するには２通りあります。</p>
<ol>
<li>まずPyDevプロジェクトを作成してからDjangoに変換する</li>
<li>いきなりDjangoプロジェクトを作成</li>
</ol>
<p>&nbsp;</p>
<p>上でのプロジェクトの種別は、Eclipse内でのプロジェクトの種類を指しています。</p>
<p>色々試した結果、私のお勧めは#1の方法です。下記で手順をかるーく紹介します。</p>
<p>&nbsp;</p>
<h4>1. Djangoのプロジェクトを作成する</h4>
<p>ここで言うDjangoのプロジェクトとは、本来の？Djangoのプロジェクトのコトです。<a title="Djangoをインストールする（前編）" href="http://blog.hitsuji.me/install-django-1/">以前の記事「Djangoをインストールする（前編）」</a>で新規プロジェクト作成手順を紹介しているので、参照してくださいね。</p>
<p>&nbsp;</p>
<h4>2. EclipseからPyDevプロジェクトを作成する</h4>
<p>Eclipseメニューバー&gt;File&gt;New&gt;Project&#8230;を選択して、PyDevプロジェクトを作成します。</p>
<p>Djangoのプロジェクトディレクトリ（manage.pyが置いてある階層）を指定します。ここでの注意点としては、PyDevのProject nameとDjangoのプロジェクト名&#8221;mysite&#8221;とを一致させることです。</p>
<p>&nbsp;</p>
<p><img class="alignnone wp-image-181 size-full_for_2x" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/08/PyDevProject-dialog.png" alt="PyDevProject-dialog" width="530" height="597" /></p>
<p>&nbsp;</p>
<p>Project nameとDirectoryを指定したら&#8221;Finish&#8221;でOKです。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>3. 作成したプロジェクトをDjangoに設定する</h4>
<p>プロジェクトを右クリックして、PyDev&gt;Set as Django Projectをクリックします。</p>
<p><img class="alignnone size-large_for_2x wp-image-183" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/08/set-django-1200x1060.png" alt="set-django" width="600" height="530" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Eclipseメニューバー &gt; Project &gt; Propertiesを開き、&#8221;Django manage.py&#8221;の項目に、&#8221;manage.py&#8221;と入力、OKを押します。</p>
<p><span style="color: #808080;"><em>私の環境だと、何故かsettings.pyはnot foundになってしまいます。でも、指定せずともとりあえず動くようです＾＾；</em></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>4. Run/Debugする</h4>
<p>Explore（Window左のツリー）において、Djangoプロジェクトフォルダ&#8221;mysite&#8221;が選択された状態にします。</p>
<p>続いてEclipseメニューバー &gt; Run AsもしくはDebug Asにカーソルを合わせて、PyDev:DjangoをクリックすればRun / Debugできます。</p>
<p>&nbsp;</p>
<p>ちょっと間があいた後で、Consoleに</p>
<pre class="command">Django version 1.6.5, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
</pre>
<p>のメッセージが表示されると成功です。</p>
<p>適当なブラウザを開き、メッセージ中のURLにアクセスすればサイトが動き出します。</p>
<p>Break Pointをおけば、処理の途中でちゃんとブレークします。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>これで快適に開発できるようになりました！</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitsuji.me/develop-django-projects-using-eclipse-with-pydev-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Djangoをインストールする（後編）</title>
		<link>http://blog.hitsuji.me/install-django-2/</link>
		<comments>http://blog.hitsuji.me/install-django-2/#comments</comments>
		<pubDate>Tue, 29 Jul 2014 00:08:22 +0000</pubDate>
		<dc:creator><![CDATA[kapibarawebmaster1515]]></dc:creator>
				<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://blog.hitsuji.me/?p=160</guid>
		<description><![CDATA[おはようございます、Taeです。 昨日の記事「Djangoをインストールする（前編）」に引き続き、DjangoのGetting Startedを紹介します。 &#160; 大まかな流れ Django本・・・<a class="readon" href="http://blog.hitsuji.me/install-django-2/">続きを読む</a>]]></description>
				<content:encoded><![CDATA[<p>おはようございます、Taeです。</p>
<p><a title="Djangoをインストールする（前編）" href="http://blog.hitsuji.me/install-django-1/">昨日の記事「Djangoをインストールする（前編）」</a>に引き続き、DjangoのGetting Startedを紹介します。</p>
<p>&nbsp;</p>
<p>大まかな流れ</p>
<ol>
<li>Django本体のインストール</li>
<li>新規プロジェクト作成</li>
<li>Hello Worldの実行
<ol>
<li>viewsの作成</li>
<li>URLの設定</li>
</ol>
</li>
<li>ディプロイ設定
<ol>
<li>mod_wsgiをインストールする</li>
<li>Virtual Host設定</li>
<li>Djangoのディプロイ設定</li>
<li>ディプロイする</li>
</ol>
</li>
</ol>
<p>&nbsp;</p>
<p>#1-2は前編で紹介しました。後編では#3-4を取り上げます。</p>
<p><span style="color: rgb(255, 0, 0);">注意：</span><br />
<span style="color: rgb(255, 0, 0);">セキュリティ対策を何もしていないので、この手順のままInternetに公開しないでくださいね！</span></p>
<p>&nbsp;</p>
<h3>Hello worldの実行</h3>
<p>簡単なHello worldを実行してみます。</p>
<h4>viewsの作成</h4>
<p>MyApp内にviewsフォルダを作成します。</p>
<pre class="command">cd ~/DjangoProjects/FirstProject/mysite/MyApp
mkdir views</pre>
<p>このフォルダに、__init__.pyと、index.pyの２つのファイルを作成します。</p>
<p>__init__.pyは、中身は空のファイルでOKです。</p>
<p>index.pyは、次のように記述します。</p>
<h6>index.py</h6>
<pre class="command"># -*- Coding: utf-8 -*-
from django.http import HttpResponse
# View for index page.
def page (request) :
    return HttpResponse("Hello world!")</pre>
<p>&nbsp;</p>
<h4>URLの設定</h4>
<p>新たに作成したビューに対応するURLを設定します。下記ディレクトリにあるurls.pyを開き、urlpatternsの要素の中に、下記を追加します。</p>
<pre class="command">url(r'^$', 'MyApp.views.index.page'),</pre>
<p>&nbsp;</p>
<p>もしも開発用サイトが停止していたら、再度起動します。プロジェクトフォルダに移動して、下記を実行</p>
<pre class="command">python manage.py runserver</pre>
<p>&nbsp;</p>
<p>サーバーのアドレスを確認して実行します。</p>
<pre class="command"><span style="color: #ffffff;"><a title="django" href="http://127.0.0.1:8000/" target="_blank"><span style="color: #ffffff;">http://127.0.0.1:8000/</span></a></span></pre>
<p>&nbsp;</p>
<p>Hello world!のメッセージが出れば成功です。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>ディプロイ設定</h3>
<p>開発用サイトから公開用サイトに展開します。</p>
<h4>mod_wsgiをインストールする</h4>
<p>mod_wsgiはPython Web Applicationを扱うためのApacheのモジュールです。</p>
<p>Homebrewでインストールします。</p>
<pre class="command">brew install mod_wsgi</pre>
<p>&nbsp;</p>
<p>httpd.confに下記を追記</p>
<pre class="command">LoadModule wsgi_module /usr/local/Cellar/mod_wsgi/3.4/libexec/mod_wsgi.so</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>Virtual Hostを設定する</h4>
<p>httpd-vhosts.confに追記</p>
<pre class="command">&lt;VirtualHost *:80&gt;
  LogLevel info
  ServerName localdjango.net
  ServerAdmin webmaster@localdjango.net
  # Static files
  DocumentRoot "/Users/<em><span style="color: #99ccff;">username</span></em>/WebSites/localdjango"
  Alias /static/ /Users/<span style="color: #99ccff;"><em>username</em></span>/WebSites/localdjango/static/
  &lt;Directory "/Users/<span style="color: #99ccff;"><em>username</em></span>/WebSites/localdjango/static"&gt;
    Order deny,allow
    Allow from all
  &lt;/Directory&gt;
  # WGSI configuration
  WSGIDaemonProcess localdjango.net processes=2 threads=15 display-name=%{GROUP} python-path=/Users/<span style="color: #99ccff;"><em>username</em></span>/mysite/:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  WSGIProcessGroup localdjango.net
  WSGIScriptAlias / /Users/<em><span style="color: #99ccff;">username</span></em>/DjangoProjects/FirstProject/mysite/mysite/wsgi.py
  &lt;Directory "/Users/<em><span style="color: #99ccff;">username</span></em>/DjangoProjects/FirstProject/mysite/mysite"&gt;
    &lt;Files wsgi.py&gt;
      Order allow,deny
      Allow from all
    &lt;/Files&gt;
  &lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre>
<p>&nbsp;</p>
<p>hostsに下記を追記</p>
<pre class="command">127.0.0.1 localdjango.net</pre>
<p>&nbsp;</p>
<p>ディプロイしたサイトを入れるフォルダを作成する。私の好みで、~/Website下にサイト毎にフォルダを作成する。</p>
<pre class="command">cd ~
mkdir WebSites
cd WebSites/
mkdir localdjango</pre>
<p>&nbsp;</p>
<p>Apache設定を確認します</p>
<pre class="command">apachectl configtest</pre>
<p>Syntax OKと出ればOK^^</p>
<p>&nbsp;</p>
<p>Apacheを一度再起動します</p>
<pre class="command">sudo apachectl graceful</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>Djangoのディプロイ設定</h4>
<p>下記をsettings.pyに追記</p>
<pre class="command"># add local env settings
STATIC_ROOT = "/Users/<em><span style="color: #99ccff;">username</span></em>/WebSites/localdjango/static/"</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>ディプロイする</h4>
<p>フォルダの権限を変える。</p>
<pre class="command">chmod -R 755 ~/DjangoProjects/FirstProject/mysite/mysite
chmod -R 755 ~/WebSites/localdjango</pre>
<p>プロジェクトフォルダに移動して、下記を実行</p>
<pre class="command">python manage.py collectstatic</pre>
<p>&nbsp;</p>
<p>Virtual Hostで指定したアドレスにアクセスします。</p>
<pre class="command"><span style="color: #ffffff;"><a title="localdjango" href="http://localdjango.net" target="_blank"><span style="color: #ffffff;">http://localdjango.net</span></a></span></pre>
<p>Hello world!が表示されるハズです。</p>
<p><img class="alignnone wp-image-169 size-medium_for_2x" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/07/home_2x1-600x446.png" alt="home_2x" width="300" height="223" /></p>
<p>&nbsp;</p>
<p>管理画面も開いてみます。末尾に/admin/をつけたURLにアクセス。</p>
<pre class="command"><a title="localdjango-admin" href="http://localdjango.net/admin/" target="_blank"><span style="color: #ffffff;">http://localdjango.net/admin/</span></a></pre>
<p><img class="alignnone size-medium_for_2x wp-image-170" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/07/admin_login_2x1-600x597.png" alt="admin_login_2x" width="300" height="298" /></p>
<p>ユーザー名とパスワード（migration実行したときに指定したもの）を入れると</p>
<p><img class="alignnone wp-image-171 size-large_for_2x" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/07/admin_2x1-1200x650.png" alt="admin_2x" width="600" height="325" /></p>
<p>管理画面が開けました！</p>
<p>&nbsp;</p>
<p>ようやくDjangoの世界の入り口に立てました。これから色々つくるのが楽しみです♥︎</p>
<p>&nbsp;</p>
<p>それでは、また！</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitsuji.me/install-django-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Djangoをインストールする（前編）</title>
		<link>http://blog.hitsuji.me/install-django-1/</link>
		<comments>http://blog.hitsuji.me/install-django-1/#comments</comments>
		<pubDate>Mon, 28 Jul 2014 01:08:30 +0000</pubDate>
		<dc:creator><![CDATA[kapibarawebmaster1515]]></dc:creator>
				<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://blog.hitsuji.me/?p=147</guid>
		<description><![CDATA[ちょっとDjango（PythonのWebフレームワーク）を使ってみることになりまして、Macローカルにインストールした手順を記しておきます。 ご注意 Django使い始めたばかりなので、勘違いして理・・・<a class="readon" href="http://blog.hitsuji.me/install-django-1/">続きを読む</a>]]></description>
				<content:encoded><![CDATA[<p>ちょっとDjango（PythonのWebフレームワーク）を使ってみることになりまして、Macローカルにインストールした手順を記しておきます。</p>
<p>ご注意</p>
<p>Django使い始めたばかりなので、勘違いして理解している点があると思います。それはご了承の上ご覧ください。</p>
<p>&nbsp;</p>
<p>Django Official Website</p>
<p><a title="django" href="http://www.djangoproject.jp" target="_blank">http://www.djangoproject.jp</a></p>
<p>Officialページ以外で最も参考にしたサイト</p>
<p><a title="build-and-deploy-a-django-project-on-osx-from-scratch" href="http://blog.manbolo.com/2013/05/02/build-and-deploy-a-django-project-on-osx-from-scratch" target="_blank">http://blog.manbolo.com/2013/05/02/build-and-deploy-a-django-project-on-osx-from-scratch</a></p>
<p>&nbsp;</p>
<p>インストール諸条件</p>
<ul>
<li>Django v1.6</li>
<li>Mac Mavericks (v10.9.4)</li>
<li>Python v2.7（Mac OS添付版）</li>
<li>Apache v2.2（Mac OS添付版）</li>
<li>Database MySQL 5.5</li>
</ul>
<p>&nbsp;</p>
<p>Command Line Tool、Homebrewは予め入れておいてください。MySQLもインストール済み、Apacheは使える状態になっているとします。</p>
<p>&nbsp;</p>
<p>大まかな流れ</p>
<ol>
<li>Django本体のインストール
<ol>
<li>pipをインストール</li>
<li>Djangoをインストール</li>
<li>MySQLdbをインストール</li>
<li>Southインストール</li>
</ol>
</li>
<li>新規プロジェクト作成
<ol>
<li>新規プロジェクト（mysite）作成</li>
<li>データベースを作成する</li>
<li>Migration(South)設定</li>
<li>開発ページを表示</li>
</ol>
</li>
<li>Hello World</li>
<li>ディプロイ設定</li>
</ol>
<p>&nbsp;</p>
<p>長くなるので、この記事では#1-2のみを掲載し、続きの#3-4は後ほどUpします。</p>
<p>&nbsp;</p>
<h3>Django本体のインストール</h3>
<p>まずはDjango自体をMacローカルにインストールします。事前にCommand Line ToolとHomebrewをインストールしておいてください。</p>
<h4>pipをインストール</h4>
<p>pipをインストールします。pipとはPythonのモジュールのインストール管理ツールで、perlにおけるcpanみたいなものらしい。</p>
<p>下記のサイトで配布している&#8221;get-pip.py&#8221;をDLして実行するのみです。手順も下記サイトのInstall pipに書かれています。</p>
<p><a href="https://pip.pypa.io/en/latest/installing.html">https://pip.pypa.io/en/latest/installing.html</a></p>
<p>&nbsp;</p>
<h4>Djangoをインストール</h4>
<p>Djangoをインストールします。いくつか方法があり、公式ページで紹介されています。</p>
<p><a title="django-download" href="https://www.djangoproject.com/download/" target="_blank">https://www.djangoproject.com/download/</a></p>
<p>&nbsp;</p>
<p>開発中の最新版を使う場合はgithubからインストールする必要がありますが、ここでは最新の安定版v1.6.5をpipでインストールします。</p>
<p>&nbsp;</p>
<p>その前に・・・</p>
<p>古いDjangoが入っている場合は、削除しておきます。&#8221;site-packages&#8221;フォルダ内のdjangoフォルダを削除しておきます。&#8221;site-packages&#8221;フォルダの場所は、次のコマンドで探せます。<a title="django-install" href="http://docs.djangoproject.jp/en/latest/topics/install.html" target="_blank">&gt;&gt;参考</a></p>
<pre class="command">python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"</pre>
<p>&nbsp;</p>
<p>インストール自体は下記コマンド１発でOK</p>
<pre class="command">pip install Django==1.6.5</pre>
<p>&nbsp;</p>
<p>一度動作確認をしておきます。</p>
<p>Pythonシェルを開きます</p>
<pre class="command">python</pre>
<p>Djangoのバージョン確認。</p>
<pre class="command">&gt;&gt; import django 
&gt;&gt; print(django.get_version())</pre>
<p>インストールしたバージョン番号&#8221;1.6.5&#8243;が表示されればOKです。</p>
<p>&nbsp;</p>
<h4>MySQLdbをインストール</h4>
<p>Djangoで第１のお勧めデータベースはPostgreSQLらしいですが、MySQLも対応しているとのこと。今回は使い慣れたMySQLを使うことにします。MySQLdbは、Python-MySQLのやり取りをするためのモジュールです。</p>
<p>pipでインストールします。</p>
<pre class="command">pip install mysql-python</pre>
<p>&nbsp;</p>
<h4>Southをインストール</h4>
<p>Migrationツール&#8221;South&#8221;をインストールしておきます。Migrationとは、データベースについて記述したスクリプトファイルを（モデル、models.py）を読み込んで、スクリプトで指定されたテーブルをデータベース上に新規作成する機能です。</p>
<p>インストールは、やはりpipを使います。</p>
<pre class="command">pip install South</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>新規プロジェクト作成</h3>
<p>Djangoのプロジェクトを作成します。諸々の設定を行い、開発用サイトのadmin画面にログイン表示するところまで行います。</p>
<p>&nbsp;</p>
<h4>新規プロジェクト（mysite）作成</h4>
<p>新しいプロジェクトを１つ作成してみます。今回は、ドキュメントフォルダの直下にDjangoProjectsというフォルダを作成し、その下に数々のプロジェクトを作成します。</p>
<pre class="command">cd ~
mkdir DjangoProjects
cd DjangoProjects
mkdir FirstProject
cd FirstProject</pre>
<p>プロジェクト格納フォルダ（FirstProject）に移動したら、プロジェクト作成コマンドを実行します。</p>
<pre class="command">django-admin.py startproject mysite</pre>
<p>実行すると、次のようなツリーが自動作成されます。</p>
<pre class="command">/FirstProject
 |-/mysite
    |-manage.py
    |-/mysite
       |-__init__.py
       |-settings.py
       |-urls.py
       |-wsgi.py</pre>
<p>以下、プロジェクトフォルダ=/FirstProject/mysiteと称することにします。</p>
<p>&nbsp;</p>
<h4>アプリを作成する</h4>
<p>このプロジェクトで開発するアプリ（MyApp）を作成します。プロジェクトフォルダに移動して、下記コマンドを実行します。</p>
<pre class="command">python manage.py startapp <span style="color: #99cc00;">MyApp</span></pre>
<p>このコマンドを実行すると、自動的にプロジェクトフォルダ直下にテンプレートファイルが入ったMyAppフォルダが作成されます。</p>
<p>&nbsp;</p>
<h4>データベースを作成する</h4>
<p>このプロジェクトで使用するデータベースを作成します。MySQLにログインしてデータベースを１つ新規作成します。</p>
<pre class="command">mysql&gt; create database mysitedb;</pre>
<p>&nbsp;</p>
<p>このデータベースにDjangoからアクセスするためのユーザー＆Passを設定します。</p>
<pre class="command">GRANT ALL PRIVILEGES ON mysitedb.* TO '<span style="color: #99ccff;">djangouser</span>'@'localhost' IDENTIFIED BY '<span style="color: #99ccff;">password</span>';</pre>
<p>&nbsp;</p>
<h4>プロジェクトの設定</h4>
<p>まずはsetting.pyを設定します。</p>
<p>言語設定をUTF-8に指定する。</p>
<pre class="command">LANGUAGE_CODE = 'utf-8'</pre>
<p>タイムゾーンを日本に指定する。</p>
<pre class="command">TIME_ZONE = 'Asia/Tokyo'</pre>
<p>データベースの設定を行う。</p>
<pre class="command">DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'mysitedb',
    'USER': '<span style="color: #99ccff;">djangouser</span>',
    'PASSWORD': '<span style="color: #99ccff;">password</span>',
    'HOST': '',
    'PORT': '',
  }
}</pre>
<p>アプリの設定を行います。先に作成したアプリフォルダの名前&#8221;MyApp&#8221;と、Migration用モジュール&#8221;south&#8221;を追加します。</p>
<pre class="command">INSTALLED_APPS = (
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  <span style="color: #99cc00;">'south',</span>
<span style="color: #99cc00;">  'MyApp',</span>
)</pre>
<p>&nbsp;</p>
<h4>Migration設定</h4>
<p>プロジェクトフォルダに移動して、下記のコマンドを実行します。</p>
<pre class="command">python manage.py schemamigration <span style="color: #99cc00;">MyApp</span> --initial</pre>
<p>&nbsp;</p>
<p>続いて下記コマンドを打ってMigrationを実行します。</p>
<pre class="command">python manage.py syncdb --migrate</pre>
<p>&nbsp;</p>
<p>途中で下記を聞かれたらyes</p>
<pre class="command">You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no):</pre>
<p>続いてユーザー名、メールアドレス、パスワードが聞かれるので、入力します。</p>
<p>&nbsp;</p>
<p>成功すると、データベースmysitedb内に、下記のようなテーブルが作成されます。</p>
<pre class="command">+----------------------------+
| Tables_in_mysitedb         |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_session             |
| south_migrationhistory     |
+----------------------------+</pre>
<p>&nbsp;</p>
<p>なお今後モデルを書き換えるなどした場合は、下記コマンドでMigrationを行います。</p>
<pre class="command">python manage.py schemamigration <span style="color: #99cc00;">MyApp</span> --auto
python manage.py migrate <span style="color: #99cc00;">MyApp</span></pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>開発用サイトを動かしてみる</h4>
<p>プロジェクトフォルダに移動して、下記コマンドを実行する。</p>
<pre class="command">python manage.py runserver</pre>
<p>&nbsp;</p>
<p>ダーっと出て来たメッセージの中に、サーバーにアクセスするアドレスが書いてあるので確認しておきます。</p>
<pre class="command">Starting development server at http://127.0.0.1:8000/</pre>
<p>&nbsp;</p>
<p>確認したアドレスにアクセスします。</p>
<pre class="command"><span style="color: #ffffff;"><a title="django" href="http://127.0.0.1:8000/" target="_blank"><span style="color: #ffffff;">http://127.0.0.1:8000/</span></a></span></pre>
<p>&nbsp;</p>
<p><a href="http://blog.hitsuji.me/app/wp-content/uploads/2014/07/home_2x.png"><img class="size-medium_for_2x wp-image-155 aligncenter" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/07/home_2x-600x525.png" alt="home_2x" width="300" height="262" /></a></p>
<p>成功しました♥︎</p>
<p>続いて、アドレスに/admin/を追加してアクセスします。</p>
<p><img class="aligncenter size-medium_for_2x wp-image-156" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/07/admin_login_2x-600x525.png" alt="admin_login_2x" width="300" height="262" /> 先ほどMigrationを実行したときに入力したユーザ名とパスワードを入力します。</p>
<p><img class="size-medium_for_2x wp-image-157 aligncenter" src="http://blog.hitsuji.me/app/wp-content/uploads/2014/07/admin_2x-600x392.png" alt="admin_2x" width="300" height="196" /></p>
<p>うまく動いたようです^^</p>
<p>&nbsp;</p>
<p>続きの記事で、Hello worldの実行と、ディプロイ設定について書く予定です。</p>
<p>それでは、お疲れさまでした！</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hitsuji.me/install-django-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
