<?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>DJANGO那些事儿</title>
	<atom:link href="http://hanx.xin/feed/" rel="self" type="application/rss+xml" />
	<link>http://hanx.xin</link>
	<description>聊聊django的那些事儿</description>
	<lastBuildDate>Thu, 10 Aug 2017 10:44:48 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.38</generator>
	<item>
		<title>django中如何扩展User表的字段</title>
		<link>http://hanx.xin/2017/08/10/django%e4%b8%ad%e5%a6%82%e4%bd%95%e6%89%a9%e5%b1%95user%e8%a1%a8%e7%9a%84%e5%ad%97%e6%ae%b5/</link>
		<comments>http://hanx.xin/2017/08/10/django%e4%b8%ad%e5%a6%82%e4%bd%95%e6%89%a9%e5%b1%95user%e8%a1%a8%e7%9a%84%e5%ad%97%e6%ae%b5/#comments</comments>
		<pubDate>Thu, 10 Aug 2017 10:22:41 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://hanx.xin/?p=238</guid>
		<description><![CDATA[在前一段时间做开发的时候，碰到一个case，要求在User表中增加一个字段，我当 &#8230; <a href="http://hanx.xin/2017/08/10/django%e4%b8%ad%e5%a6%82%e4%bd%95%e6%89%a9%e5%b1%95user%e8%a1%a8%e7%9a%84%e5%ad%97%e6%ae%b5/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>在前一段时间做开发的时候，碰到一个case，要求在User表中增加一个字段，我当时想了一想，想出了以下几法：</p>
<ol>
<li>第一反应就是，既然是扩展django自带的model表，当然只有去修改django的源代码了，加个字段一句话的事。但是想到此招不行，修改源码乃是大忌，因为这不利于项目的迁移以及django的版本升级；</li>
<li>那我把django 的user以及认证部分的源代码拷贝到自己的app下面，然后修改，配置,这样就不需要改动django的代码了，我傻啊，为了加一字段，搞出这么大一动静；</li>
<li>那我就自定义一个表呗，然后和User表做个关联，每次有关User表的操作，我就同步到新建的表，在我的项目中呢，我就用我自定义的表，不就ok了嘛，但是此法一是比较麻烦，得把之前和User有关的都改到新表，另外就是每次都得同步，比较耗资源；</li>
<li>这个方法是官方推崇的办法，profile 方式扩展.，大体思路是创建 user profile 类，直接继承于 User ，然后扩展扩展认证机制，再在setting中，修改<code>AUTHENTICATION_BACKENDS</code>为你新建的认证机制，这样就用你继承的新的User表，代替了Django的User表，以后所有有关User的操作都用这张表即可，听起来似乎不错，但我不还得修改之前和User相关的代码么。</li>
</ol>
<p>要是能有这么一种方法，能在不修改源码，不增加新表的情况下，就能扩展User表，想必那是极好的。经过多番搜索，找到了一种通过元类来达到目的的方法，现分享给大伙：</p><pre class="crayon-plain-tag">from django.db import models  
from django.contrib.auth.models import User  
from django.contrib.auth.admin import UserAdmin  
import datetime  
class ProfileBase(type):  
    def __new__(cls, name, bases, attrs):  #构造器，（名字，基类，类属性）
        module = attrs.pop('__module__')  
        parents = [b for b in bases if isinstance(b, ProfileBase)]  
        if parents:  
            fields = []  
            for obj_name, obj in attrs.items():  
                if isinstance(obj, models.Field): fields.append(obj_name)  
                User.add_to_class(obj_name, obj)       ####最重要的步骤
            UserAdmin.fieldsets = list(UserAdmin.fieldsets)  
            UserAdmin.fieldsets.append((name, {'fields': fields}))  
        return super(ProfileBase, cls).__new__(cls, name, bases, attrs)  

class ProfileUser(object):  
    __metaclass__ = ProfileBase  

class ExtraInfo(ProfileUser):  
    phone_number= models.CharField(max_length = 20, verbose_name=u'电话号码')</pre><p>&nbsp;</p>
<p>这样就大功告成啦!!!</p>
<p>稍微解释一下这段代码： ProfileBase是自定义的一个元类，继承自<code>types.ClassType</code>，其中ProfileUser为一个基类，其元类为ProfileBase，而ExtraInfo才是我们真正自定义字段的类，之所以把基类ProfileUser和ExtraInfo分开，是为了便于在其他地方引用ProfileUser，进行自定义扩展。简单说来，当解释器看到你在定义一个ProfileUser类的子类，而ProfileUser类的元类是ProfileBase，所以ExtraInfo的元类也是ProfileBase，在定义ProfileUser的子类的时候，它就会执行元类ProfileBase中的new中代码，并且将正在定义的类的（名字，基类，类属性）作为参数传递给new，这里的name就是类名ExtraInfo，attrs中则包含你新加的字段，通过<code>User.add_to_class</code>把新的字段加入到User中，为了能在admin中显示出来，把它加入到<code>UserAdmin.fieldsets</code>中，这样就能在后台编辑这个这个字段，当然，你也可以加入到ist_display，使之在列表中显示。</p>
<p>如果你有其他app也想往User Model中加field或方法，都只要通过子类ProfileUser类，然后使用声明语法进行定义即可，所有其他工作都有元类帮你完成。这也是所有django的model的内部工作，你可以用此方法扩展任何model。</p>
<p>转载请注明出处：<a title="http://www.opscoder.info/extend_user.html" href="http://www.opscoder.info/extend_user.html">http://www.opscoder.info/extend_user.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2017/08/10/django%e4%b8%ad%e5%a6%82%e4%bd%95%e6%89%a9%e5%b1%95user%e8%a1%a8%e7%9a%84%e5%ad%97%e6%ae%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mac下pip安装MySQL-python报mysql_config not found错误</title>
		<link>http://hanx.xin/2017/06/23/mac%e4%b8%8bpip%e5%ae%89%e8%a3%85mysql-python%e6%8a%a5mysql_config-not-found%e9%94%99%e8%af%af/</link>
		<comments>http://hanx.xin/2017/06/23/mac%e4%b8%8bpip%e5%ae%89%e8%a3%85mysql-python%e6%8a%a5mysql_config-not-found%e9%94%99%e8%af%af/#comments</comments>
		<pubDate>Fri, 23 Jun 2017 06:29:49 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://hanx.xin/?p=232</guid>
		<description><![CDATA[如题mac下pip安装MySQL-python报mysql_config not &#8230; <a href="http://hanx.xin/2017/06/23/mac%e4%b8%8bpip%e5%ae%89%e8%a3%85mysql-python%e6%8a%a5mysql_config-not-found%e9%94%99%e8%af%af/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>如题mac下pip安装MySQL-python报mysql_config not found错误</p><pre class="crayon-plain-tag">sh: mysql_config: command not found
Traceback (most recent call last):
File "&lt;string&gt;", line 1, in &lt;module&gt;
File "/private/var/folders/w3/g_zwb50d323db4lfk767fl880000gn/T/pip-build-V48ZS2/MySQL-python/setup.py", line 17, in &lt;module&gt;
metadata, options = get_config()
File "setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "setup_posix.py", line 25, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found</pre><p>解决办法</p>
<p>确保已经安装mysql，没有安装使用brew install mysql即可 （brew需要提前安装）</p>
<p>下载MySQL-python-1.2.5.zip安装包,解压后修改site.cfg的13行</p><pre class="crayon-plain-tag">mysql_config = /usr/local/mysql-5.7.17-macos10.12-x86_64/bin/mysql_config</pre><p>其中</p><pre class="crayon-plain-tag">/usr/local/mysql-5.7.17-macos10.12-x86_64/bin/mysql_config 可根据 locate mysql_config命令获得</pre><p>然后分别执行  python setup.py build 和  python setup.py install  安装MySQL-python即可</p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2017/06/23/mac%e4%b8%8bpip%e5%ae%89%e8%a3%85mysql-python%e6%8a%a5mysql_config-not-found%e9%94%99%e8%af%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ssh命令利用tab键自动补全主机名</title>
		<link>http://hanx.xin/2017/05/17/ssh%e5%91%bd%e4%bb%a4%e5%88%a9%e7%94%a8tab%e9%94%ae%e8%87%aa%e5%8a%a8%e8%a1%a5%e5%85%a8%e4%b8%bb%e6%9c%ba%e5%90%8d/</link>
		<comments>http://hanx.xin/2017/05/17/ssh%e5%91%bd%e4%bb%a4%e5%88%a9%e7%94%a8tab%e9%94%ae%e8%87%aa%e5%8a%a8%e8%a1%a5%e5%85%a8%e4%b8%bb%e6%9c%ba%e5%90%8d/#comments</comments>
		<pubDate>Wed, 17 May 2017 08:05:17 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">http://hanx.xin/?p=226</guid>
		<description><![CDATA[1.创建文件(~/.ssh/hosts)  这个文件位置和名称可根据自己习惯自定 &#8230; <a href="http://hanx.xin/2017/05/17/ssh%e5%91%bd%e4%bb%a4%e5%88%a9%e7%94%a8tab%e9%94%ae%e8%87%aa%e5%8a%a8%e8%a1%a5%e5%85%a8%e4%b8%bb%e6%9c%ba%e5%90%8d/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>1.创建文件(~/.ssh/hosts)  这个文件位置和名称可根据自己习惯自定义</p>
<p>2.写入想利用tab键补全在ssh命令之后的主机名,以下是我的测试数据</p><pre class="crayon-plain-tag">[dev@hanxin2-dev ~]$ cat -n .ssh/hosts 
     1	web01.test.com
     2	web02.google.com
     3	dns01.test.com
     4	web02.google.cn</pre><p>3.执行 complete -W &#8220;$(&lt;~/.ssh/hosts)&#8221; ssh 命令。以下是具体效果</p><pre class="crayon-plain-tag">[dev@hanxin2-dev ~]$ ssh  (按Tab键)
dns01.test.com    web01.test.com    web02.google.cn   web02.google.com  
[dev@hanxin2-dev ~]$ ssh web0  （按Tab键）
web01.test.com    web02.google.cn   web02.google.com  
[dev@hanxin2-dev ~]$ ssh web02.google.c  （按Tab键） 
web02.google.cn   web02.google.com</pre><p>4.每次修改~/.ssh/hosts文件后，记得重新运行 complete -W &#8220;$(&lt;~/.ssh/hosts)&#8221; ssh</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>参考文档:https://michael.lustfield.net/linux/ssh-tab-complete</p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2017/05/17/ssh%e5%91%bd%e4%bb%a4%e5%88%a9%e7%94%a8tab%e9%94%ae%e8%87%aa%e5%8a%a8%e8%a1%a5%e5%85%a8%e4%b8%bb%e6%9c%ba%e5%90%8d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>golang使用空格分割字符串</title>
		<link>http://hanx.xin/2017/03/27/golang%e4%bd%bf%e7%94%a8%e7%a9%ba%e6%a0%bc%e5%88%86%e5%89%b2%e5%ad%97%e7%ac%a6%e4%b8%b2/</link>
		<comments>http://hanx.xin/2017/03/27/golang%e4%bd%bf%e7%94%a8%e7%a9%ba%e6%a0%bc%e5%88%86%e5%89%b2%e5%ad%97%e7%ac%a6%e4%b8%b2/#comments</comments>
		<pubDate>Mon, 27 Mar 2017 07:58:32 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[Golang]]></category>
		<category><![CDATA[golang]]></category>

		<guid isPermaLink="false">http://hanx.xin/?p=219</guid>
		<description><![CDATA[想在go中使用空格进行分割字符串。由于字符串中空格个数不定，或者有可能使用的un &#8230; <a href="http://hanx.xin/2017/03/27/golang%e4%bd%bf%e7%94%a8%e7%a9%ba%e6%a0%bc%e5%88%86%e5%89%b2%e5%ad%97%e7%ac%a6%e4%b8%b2/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>想在go中使用空格进行分割字符串。由于字符串中空格个数不定，或者有可能使用的unicode空格。所以单纯的使用</p><pre class="crayon-plain-tag">strings.Split(somestring,&quot;  &quot;)</pre><p>不太方便。<br />
可以使用strings模块提供的另一种方法</p><pre class="crayon-plain-tag">strings.Fields(somestring)</pre><p>示例</p><pre class="crayon-plain-tag">package main

import (
       &quot;fmt&quot;
       &quot;strings&quot;
)

func main() {
       str := &quot;  a b c       d e f  &quot;
       strarray := strings.Fields(strings.TrimSpace(str))
       fmt.Println(strarray)
       fmt.Println(len(strarray))

}</pre><p>结果<br />
[a b c d e f]<br />
6</p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2017/03/27/golang%e4%bd%bf%e7%94%a8%e7%a9%ba%e6%a0%bc%e5%88%86%e5%89%b2%e5%ad%97%e7%ac%a6%e4%b8%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx rewrite 的break last redirect permanent 区别</title>
		<link>http://hanx.xin/2015/05/18/nginx-rewrite-%e7%9a%84break-last-redirect-permanent-%e5%8c%ba%e5%88%ab/</link>
		<comments>http://hanx.xin/2015/05/18/nginx-rewrite-%e7%9a%84break-last-redirect-permanent-%e5%8c%ba%e5%88%ab/#comments</comments>
		<pubDate>Mon, 18 May 2015 01:09:29 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.pydjango.cn/?p=168</guid>
		<description><![CDATA[rewrite break &#8211;        url重写后，直接使用 &#8230; <a href="http://hanx.xin/2015/05/18/nginx-rewrite-%e7%9a%84break-last-redirect-permanent-%e5%8c%ba%e5%88%ab/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>rewrite break &#8211;        url重写后，直接使用当前资源，不再执行location里余下的语句，完成本次请求，地址栏url不变<br />
rewrite last &#8211;        url重写后，马上发起一个新的请求，再次进入server块，重试location匹配，超过10次匹配不到报500错误，地址栏url不变<br />
rewrite redirect –    返回302临时重定向，地址栏显示重定向后的url，爬虫不会更新url（因为是临时）<br />
rewrite permanent –    返回301永久重定向, 地址栏显示重定向后的url，爬虫更新url</p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2015/05/18/nginx-rewrite-%e7%9a%84break-last-redirect-permanent-%e5%8c%ba%e5%88%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用Chrome提升一下逼格</title>
		<link>http://hanx.xin/2015/05/14/%e7%94%a8chrome%e6%8f%90%e5%8d%87%e4%b8%80%e4%b8%8b%e9%80%bc%e6%a0%bc/</link>
		<comments>http://hanx.xin/2015/05/14/%e7%94%a8chrome%e6%8f%90%e5%8d%87%e4%b8%80%e4%b8%8b%e9%80%bc%e6%a0%bc/#comments</comments>
		<pubDate>Thu, 14 May 2015 01:28:44 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.pydjango.cn/?p=165</guid>
		<description><![CDATA[1.把Chrome打造成编辑器 在地址栏输入以下代码，浏览器就瞬间变成了编辑器。 &#8230; <a href="http://hanx.xin/2015/05/14/%e7%94%a8chrome%e6%8f%90%e5%8d%87%e4%b8%80%e4%b8%8b%e9%80%bc%e6%a0%bc/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>1.把Chrome打造成编辑器</p>
<p>在地址栏输入以下代码，浏览器就瞬间变成了编辑器。</p><pre class="crayon-plain-tag">data:text/html, &lt;style type=%22text/css%22&gt;#e{position:absolute;top:0;right:0;bottom:0;left:0;}&lt;/style&gt;&lt;div id=%22e%22&gt;&lt;/div&gt;&lt;script src=%22http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js%22 type=%22text/javascript%22 charset=%22utf-8%22&gt;&lt;/script&gt;&lt;script&gt;var e=ace.edit(%22e%22);e.setTheme(%22ace/theme/monokai%22);e.getSession().setMode(%22ace/mode/python%22);&lt;/script&gt;</pre><p>2.让浏览器成为SSH工具，</p>
<p>需要到谷歌浏览器应用中心安装 Secure Shell插件</p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2015/05/14/%e7%94%a8chrome%e6%8f%90%e5%8d%87%e4%b8%80%e4%b8%8b%e9%80%bc%e6%a0%bc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django+nginx+uwsgi部署</title>
		<link>http://hanx.xin/2015/04/07/djangonginxuwsgi%e9%83%a8%e7%bd%b2/</link>
		<comments>http://hanx.xin/2015/04/07/djangonginxuwsgi%e9%83%a8%e7%bd%b2/#comments</comments>
		<pubDate>Tue, 07 Apr 2015 07:53:34 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.pydjango.cn/?p=155</guid>
		<description><![CDATA[写了那么长时间的django，一直没跟nginx结合一下，访问的时候老是得加端口 &#8230; <a href="http://hanx.xin/2015/04/07/djangonginxuwsgi%e9%83%a8%e7%bd%b2/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>写了那么长时间的django，一直没跟nginx结合一下，访问的时候老是得加端口号，觉得不爽。故想到部署到nginx上面。</p>
<p>环境:python：2.7.6</p>
<p>nginx：1.0.5 (yum直接安装的，版本好低的说，需要高版本的可以自行编译安装这都不是重点)</p>
<p>uWSGI： 2.0.10 (pip install uwsgi直接安装的，安装完成会提示你安装到哪了，我的是/usr/local/python27/bin/uwsgi,将uwsgi复制到/usr/bin/下面,方便直接运行)</p>
<p>django : 1,7,1</p>
<p>环境介绍完毕，开搞。</p>
<p>首先要有一个django项目，至于怎么创建就不赘述了，既然能找这篇文章看，对django肯定是了得的差不多了。</p>
<p>一。编辑nginx的配置文件</p>
<p>由于我是yum安装的，我的配置文件在/etc/nginx/目录下，自行编译的根据自己实际情况查找。为了方便管理我就放在了/etc/nginx/conf.d/，没错就是放vhosts配置文件的目录里面。</p>
<p>稍微话唠一下:由于yum安装的nginx 会在/etc/nginx/conf.d/</p>
<p>目录下生成default.conf配置文件，防止冲突就把它重命名好了.</p>
<p>编辑django.conf（任意起名）</p><pre class="crayon-plain-tag">server {
        listen  80;
        server_name localhost;

        location / {
            root /djangoproject/cmdb04;  #这个是我django项目所在的绝对路径,cmdb04是我的项目名,下同
            include     uwsgi_params;
            uwsgi_pass   127.0.0.1:9000; #这个要跟之后配置的uwsgi配置文件保持一致
            uwsgi_param UWSGI_CHDIR  /djangoproject/cmdb04; #这个也是我django项目所在的绝对路径
            uwsgi_param UWSGI_SCRIPT django_wsgi;#这个要和uwsgi配置文件里module的内容一致,嗯,应该是这样
            #access_log  off;
            access_log /var/log/nginx/access.log; #日志存放目录，当然前提是这个目录要事先存在，不然启动nginx会报错，手动创建就好了。
            }
        location /statics/ {            #这个statics名称要跟django setting文件里静态目录的配置保持一致，不然的话css等静态文件会找不到。
       alias /djangoproject/cmdb04/statics/; #这个就是statics所在的目录
       index index.html;
}
}</pre><p>二。配置uWSGI。</p>
<p>在nginx目录创建一个uwsgi配置文件（当然了这个配置文件放在哪都行，只要你能找到的就行，那小弟先放/etc/nginx/下了哈）</p>
<p>&nbsp;</p><pre class="crayon-plain-tag">&lt;uwsgi&gt;
 &lt;socket&gt;127.0.0.1:9000 &lt;/socket&gt; #和nginx配置一致
 &lt;listen&gt;1024&lt;/listen&gt;
 &lt;master&gt;true &lt;/master&gt;
 &lt;pidfile&gt;/usr/local/nginx/uwsgi.pid &lt;/pidfile&gt; 
 &lt;processes&gt;8 &lt;/processes&gt;
 &lt;pythonpath&gt;/djangoproject/cmdb04 &lt;/pythonpath&gt; #我的django项目路径
 &lt;module&gt;django_wsgi&lt;/module&gt; #和nginx里配置一致
 &lt;profiler&gt;true &lt;/profiler&gt;
 &lt;memory-report&gt;true &lt;/memory-report&gt;
 &lt;enable-threads&gt;true &lt;/enable-threads&gt;
 &lt;logdate&gt;true &lt;/logdate&gt;
 &lt;limit-as&gt;6048 &lt;/limit-as&gt;
 &lt;daemonize&gt;/tmp/uwsgi.log&lt;/daemonize&gt; #日志存放位置
&lt;/uwsgi&gt;</pre><p>uwsgi.xml里其他一些配置暂且保持一致就行了，可根据自己要求修改。</p>
<p>三。创建django应用模块。</p>
<p>1.情况一：如果你的django项目是使用IDE创建的，那么在你的项目下应该会有wsgi.py这个文件，我的是在/djangoproject/cmdb04/cmdb04/(就是两个cmdb04,cmdb04是我的项目名)，</p>
<p>直接复制到项目的根目录下，并重命名为django_wsgi.py。为什么是这个文件名呢，因为你在nginx配置文件和uwsgi配置文件的module都是写的这个文件名。如果没找到wsgi.py这个文件，那么别费劲了，直接看情况二吧。</p>
<p>2.情况二:就是没找到那个wsgi.py，那就手动创建吧。在django项目根目录下创建django_wsgi.py文件。</p><pre class="crayon-plain-tag">import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'cmdb04.settings' #注意cmdb04要改成你的项目名
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()</pre><p>四。写一个uwsgi的启动脚本，方便start,stop,restart</p><pre class="crayon-plain-tag">#!/bin/bash
# uwsgi script
# it is v.0.0.1 version.
# chkconfig: - 89 19
# description: uwsgi script
# processname: uwsgi
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
     
uwsgi_config=/etc/nginx/uwsgi.xml   #这里要配置对刚才写的uwsgi.xml路径
uwsgi_pn=`ps aux|grep -v "grep"|grep -c "uwsgi"`
uwsgi_pid=`ps -eo pid,comm|grep uwsgi|sed -n 1p|awk '{print $1}'`
uwsgi_PID=/usr/local/nginx/logs/uwsgi.pid
uwsgi=/usr/bin/uwsgi  #最开始就让你复制到这里了，啥？找不到了？那自己用locate命令找吧
RETVAL=0
prog="uwsgi"
# Source function library.
.  /etc/rc.d/init.d/functions
     
     
if [ $(id -u) != "0" ]; then
    printf "Error: You must be root to run this script!\n"
    exit 1
fi
     
     
# Start nginx daemons functions.
start() {
if [ $uwsgi_pn -gt 5 ];then
        action "uwsgi is running!" /bin/true
    exit 0
fi
    daemon $uwsgi -x ${uwsgi_config}
        action "uwsgi start ..." /bin/true
}
# Stop nginx daemons functions.
stop() {
if [ $uwsgi_pn -gt 5 ]
then
        kill -9 `ps -eo pid,comm|grep uwsgi|sed -n 1p|awk '{print $1}'`
    RETVAL=$?
        action "uwsgi stopping ..." /bin/true
else
        action "uwsgi not running!" /bin/false
fi
}
     
# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
restart)
        stop
        start
        ;;
*)
        echo $"Usage: $prog {start|stop|restart}"
        exit 1
esac
exit $RETVAL</pre><p>五.万事大吉了，可以启动测试了</p>
<p>server nginx start</p>
<p>server uwsgi start</p>
<p>注意查看端口中是否存在uwsgi的9000端口</p>
<p>linuxcmd:   netstat -antpl | grep uwsgi</p>
<p>linuxout:   tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      6780/uwsgi</p>
<p>六。如果没成功，请从头排查一遍。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2015/04/07/djangonginxuwsgi%e9%83%a8%e7%bd%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>查看linux机器上查看硬盘型号</title>
		<link>http://hanx.xin/2015/03/13/%e6%9f%a5%e7%9c%8blinux%e6%9c%ba%e5%99%a8%e4%b8%8a%e6%9f%a5%e7%9c%8b%e7%a1%ac%e7%9b%98%e5%9e%8b%e5%8f%b7/</link>
		<comments>http://hanx.xin/2015/03/13/%e6%9f%a5%e7%9c%8blinux%e6%9c%ba%e5%99%a8%e4%b8%8a%e6%9f%a5%e7%9c%8b%e7%a1%ac%e7%9b%98%e5%9e%8b%e5%8f%b7/#comments</comments>
		<pubDate>Fri, 13 Mar 2015 03:00:07 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://qxu1192620053.my3w.com/?p=98</guid>
		<description><![CDATA[如果机器上有raid配置可以用megacli工具查看。 可以去http://rp &#8230; <a href="http://hanx.xin/2015/03/13/%e6%9f%a5%e7%9c%8blinux%e6%9c%ba%e5%99%a8%e4%b8%8a%e6%9f%a5%e7%9c%8b%e7%a1%ac%e7%9b%98%e5%9e%8b%e5%8f%b7/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>如果机器上有raid配置可以用megacli工具查看。</p>
<p>可以去http://rpm.pbone.net/ 搜一下符合自己机器的rpm版本进行安装。</p>
<p>megacli -PDList -aALL<a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150313105725.jpg"><img title="查看linux机器上查看硬盘型号 - DJANGO那些事儿 - 1" alt="查看linux机器上查看硬盘型号 - DJANGO那些事儿 - 1"  class="alignnone size-full wp-image-100"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150313105725.jpg" width="895" height="516" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2015/03/13/%e6%9f%a5%e7%9c%8blinux%e6%9c%ba%e5%99%a8%e4%b8%8a%e6%9f%a5%e7%9c%8b%e7%a1%ac%e7%9b%98%e5%9e%8b%e5%8f%b7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>推荐一款IDE&#8212;pycharm</title>
		<link>http://hanx.xin/2015/03/11/%e6%8e%a8%e8%8d%90%e4%b8%80%e6%ac%beide-pycharm/</link>
		<comments>http://hanx.xin/2015/03/11/%e6%8e%a8%e8%8d%90%e4%b8%80%e6%ac%beide-pycharm/#comments</comments>
		<pubDate>Wed, 11 Mar 2015 15:43:19 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[Pycharm]]></category>
		<category><![CDATA[pycharm]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[激活]]></category>

		<guid isPermaLink="false">http://qxu1192620053.my3w.com/?p=72</guid>
		<description><![CDATA[工欲善其事必先利其器，额。。每次看到要推荐工具的时候，以这句话开头，我也不例外。 &#8230; <a href="http://hanx.xin/2015/03/11/%e6%8e%a8%e8%8d%90%e4%b8%80%e6%ac%beide-pycharm/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>工欲善其事必先利其器，额。。每次看到要推荐工具的时候，以这句话开头，我也不例外。</p>
<p>首先可以去pycharm官网去下载这款IDE，主要分专业版（免费试用30天），社区版（完全free，当然有些功能应该是被阉割了）</p>
<p>下载后，可以安装了，安装过程没有什么特别需要注意的地方，跟安大部分软件一样，点下一步就行了。贴几张安装过程截图。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图201503112101341.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 1" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 1"  class="alignnone size-full wp-image-65"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图201503112101341.png" width="544" height="420" /></a></p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221124.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 2" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 2"  class="alignnone size-full wp-image-66"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221124.png" width="537" height="426" /></a></p>
<p>&nbsp;</p>
<p>安装完成双击运行程序就行了。</p>
<p>第一次运行，让选择是否选择导入已有的配置，该选择适合重装软件时，选择已存在的配置文件。由于我这是第一次安装就选择下面一项就行了。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221348.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 3" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 3"  class="alignnone size-full wp-image-67"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221348.png" width="607" height="239" /></a></p>
<p>&nbsp;</p>
<p>开始激活软件（毕竟是收费软件），激活码网上一大堆注册码，感谢购买软件的前辈无私奉献的注册码。</p>
<p>下面贴一个我常用的激活码：</p>
<p>用户名：yueting3527</p>
<p>注册码：<br />
===== LICENSE BEGIN =====<br />
93347-12042010<br />
00001FMHemWIs&#8221;6wozMZnat3IgXKXJ<br />
2!nV2I6kSO48hgGLa9JNgjQ5oKz1Us<br />
FFR8k&#8221;nGzJHzjQT6IBG!1fbQZn9!Vi<br />
===== LICENSE END =====</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221417.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 4" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 4"  class="alignnone size-full wp-image-68"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221417.png" width="492" height="453" /></a></p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221432.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 5" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 5"  class="alignnone size-full wp-image-69"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221432.png" width="616" height="557" /></a></p>
<p>这里直接点OK进入就行了。这些配置之后都可以改。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221527.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 6" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 6"  class="alignnone size-full wp-image-70"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311221527.png" width="702" height="613" /></a></p>
<p>&nbsp;</p>
<p>使用pycharm创建一个django project。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230141.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 7" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 7"  class="alignnone size-full wp-image-74"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230141.png" width="699" height="617" /></a><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230148.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 8" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 8"  class="alignnone size-full wp-image-75"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230148.png" width="699" height="623" /></a><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230212.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 9" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 9"  class="alignnone size-full wp-image-76"  src="http://http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230212.png" width="702" height="616" /></a></p>
<p>创建完了就这样。。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230814.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 10" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 10"  class="alignnone size-full wp-image-77"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230814.png" width="1366" height="730" /></a></p>
<p>&nbsp;</p>
<p>运行django，看是否能真正运行。</p>
<p>选择 manage.py   然后在manage.py 编辑框 右键选择 Run &#8216;manage&#8217; <a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230935.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 11" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 11"  class="alignnone size-full wp-image-79"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311230935.png" width="925" height="561" /></a></p>
<p>然后在右上角 运行的程序变成 manage了，其实并没有真正运行。因为没有给 manage 指定参数</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231019.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 12" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 12"  class="alignnone size-full wp-image-80"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231019.png" width="762" height="303" /></a></p>
<p>单击 mange 后面的灰色小三角，出现Edit Configurations.点击它。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231032.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 13" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 13"  class="alignnone size-full wp-image-81"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231032.png" width="324" height="222" /></a></p>
<p>打开编辑框，然后在  Script parameters 填写 runserver 127.0.0.1:8888       如果想让其他同网段PC也能访问这个django程序  把127.0.0.1 改成 0.0.0.0就好(即0.0.0.0:8888 这样其他PC也就能访问本机的django程序了) 。点击apply  ok 后退出</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231059.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 14" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 14"  class="alignnone size-full wp-image-82"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231059.png" width="1086" height="697" /></a></p>
<p>一切就绪后就可以真正运行这个django程序了。点击绿色三角。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231115.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 15" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 15"  class="alignnone size-full wp-image-83"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231115.png" width="353" height="237" /></a></p>
<p>当出现如下提示时，就可以在浏览器访问这个项目了。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231132.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 16" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 16"  class="alignnone size-full wp-image-84"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231132.png" width="720" height="282" /></a> <a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231156.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 17" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 17"  class="alignnone size-full wp-image-85"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311231156.png" width="947" height="298" /></a></p>
<p>到这里，就可以用pycharm写django程序了。</p>
<p>IDE要看着顺眼，要自己的审美要求嘛。</p>
<p>接着就可以做一些其他的设置了，让其更符合自己的习惯。</p>
<p><strong>更改字体:</strong></p>
<p>依次点击:File&#8211;&gt;Settings&#8230;&#8211;&gt;Editor&#8211;&gt;Colors&amp;Fonts&#8211;&gt;Font  右边选择Scheme name　我选择的是Ｍonokai 然后 点击Save As 出现弹框后，选择OK。（不选择Save AS 下面字体相关的是不能改的。）<a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311233010.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 18" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 18"  class="alignnone size-full wp-image-87"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311233010.png" width="520" height="412" /></a></p>
<p>&nbsp;</p>
<p>根据自己习惯选择字体大小，保存退出。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311233221.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 19" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 19"  class="alignnone size-full wp-image-89"  src="http://qxu1192620053.my3w.com/wp-content/uploads/2015/03/QQ截图20150311233221.png" width="684" height="467" /></a></p>
<p><strong>创建文件自动添加文件头，比如下图</strong></p>
<p><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 20" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 20" class="alignnone size-full wp-image-91" src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311233654.png" width="544" height="170" /></p>
<p>依次点击File&#8211;&gt;Settings&#8230;&#8211;&gt;Editor&#8211;&gt;File and Code Templates 右边选择python script 然后在编辑框写入以下内容即可，保存后，以后创建python文件就可以自动添加文件头了。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311234421.png"><img title="推荐一款IDE---pycharm - DJANGO那些事儿 - 21" alt="推荐一款IDE---pycharm - DJANGO那些事儿 - 21"  class="alignnone size-full wp-image-93"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150311234421.png" width="1185" height="441" /></a></p><pre class="crayon-plain-tag">#!/usr/bin/env python
#coding:utf-8
#Created by ${USER} on ${DATE}</pre><p>其他功能后续再更新。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2015/03/11/%e6%8e%a8%e8%8d%90%e4%b8%80%e6%ac%beide-pycharm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows python django 开发环境搭建&#8211;安装篇</title>
		<link>http://hanx.xin/2015/03/09/windows-python-django-%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba-%e5%ae%89%e8%a3%85%e7%af%87/</link>
		<comments>http://hanx.xin/2015/03/09/windows-python-django-%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba-%e5%ae%89%e8%a3%85%e7%af%87/#comments</comments>
		<pubDate>Mon, 09 Mar 2015 15:53:25 +0000</pubDate>
		<dc:creator><![CDATA[hanxin]]></dc:creator>
				<category><![CDATA[django]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://qxu1192620053.my3w.com/?p=50</guid>
		<description><![CDATA[最近同事老是找我搭建python django开发环境，所以，觉得是时候写个教程 &#8230; <a href="http://hanx.xin/2015/03/09/windows-python-django-%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba-%e5%ae%89%e8%a3%85%e7%af%87/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>最近同事老是找我搭建python django开发环境，所以，觉得是时候写个教程了。</p>
<p>安装篇。</p>
<p>一。安装python环境，首先需要安装的就是python啦。</p>
<p>不废话，果断python官网下载最新版即可。</p>
<p>下载地址传送门:www.python.org</p>
<p>我下载的是<a href="https://www.python.org/ftp/python/2.7.9/python-2.7.9.amd64.msi">Windows x86-64 MSI installer</a>. 小伙伴根据自己电脑系统版本下载就是。</p>
<p>下载安装文件后，直接双击安装就行。</p>
<p>有两点需要注意：1.安装路径自行创建，同时路径最好不要包含中文。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309231058.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 1" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 1"  class="alignnone size-full wp-image-51"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309231058.png" width="513" height="438" /></a></p>
<p>2.选择将python加入环境变量，这要是不选的话，之后还要手动将python路径加入环境变量。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309231243.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 2" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 2"  class="alignnone size-full wp-image-52"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309231243.png" width="623" height="439" /></a></p>
<p>&nbsp;</p>
<p>安装完成后，运行cmd ，键入python 如果出现下图，则代码python安装成功，并成功设置环境变量。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309231451.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 3" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 3"  class="alignnone size-full wp-image-53"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309231451.png" width="679" height="440" /></a></p>
<p>二.django安装。</p>
<p>第一种方法可以通过pip工具直接安装django。在cmd中输入 pip install django 即可。（pip 是安装python时自动安装的，其他强大的功能可自行百度之）</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309233326.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 4" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 4"  class="alignnone  wp-image-55"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309233326.png" width="609" height="398" /></a></p>
<p>第二种方法  源码安装</p>
<p>首先到django官网自行下载Django源码压缩文件。</p>
<p>传送门:https://www.djangoproject.com/download/</p>
<p>下载后，解压。我的文件解压到e盘下了。运行powershell(当然用cmd也是可以的 但是个人觉得cmd有很多不方便的地方)进行命令行安装django。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309234315.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 5" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 5"  class="alignnone size-full wp-image-56"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309234315.png" width="505" height="708" /></a></p>
<p>执行python setup.py build进行安装前build</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309234548.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 6" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 6"  class="alignnone size-full wp-image-59"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309234548.png" width="636" height="96" /></a></p>
<p>&nbsp;</p>
<p>build完成后，无报错就可以安装了。执行 python setup.py install。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309234620.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 7" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 7"  class="alignnone size-full wp-image-57"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309234620.png" width="643" height="232" /></a></p>
<p>等待安装完成。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309234722.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 8" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 8"  class="alignnone size-full wp-image-58"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309234722.png" width="662" height="215" /></a></p>
<p>测试是否可用</p>
<p>cmd中打开python交互器，import django 如果无任何报错，则代表安装成功。</p>
<p><a href="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309235102.png"><img title="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 9" alt="windows python django 开发环境搭建--安装篇 - DJANGO那些事儿 - 9"  class="alignnone size-full wp-image-60"  src="http://hanx.xin/wp-content/uploads/2015/03/QQ截图20150309235102.png" width="676" height="443" /></a></p>
<p>到这里，python 和 django 就已经成功安装到你的电脑上了。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://hanx.xin/2015/03/09/windows-python-django-%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba-%e5%ae%89%e8%a3%85%e7%af%87/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
