<?xml version="1.0"?>
<rss version="2.0">
   <channel>
   <title>2goO最新博客</title>
   <link>/blog/</link>
   <description>2goO博客 -- 一个自由交流开源技术的地方！
   </description>
   <language>zh-cn</language>
   <image>
     <title></title>
     <url></url>
     <link></link>
   </image>

   
   <item>
     <title>Virtualenv+Django+uWSGI+Nginx部署方式备忘录</title>
     <link>/blog/panjj/Django/2013/05/16/549</link>
     <description>Nginx 0.86以后的版本内置了uWSGI模块，用它部署Django应用性能不错，而且很省内存，所以一年前尝试Virtualenv+Django+uWSGI+Nginx这种组合方式去部署2goO网站，因为那时只看到uWSGI的测试结果，很兴奋，什么材料都没有看，直接下载包安装到服务器上折腾了，一时不了解里面的机制原理，过程中竟然遇到了很大的挫折，相比fastCGI，个人感觉难了不少，所以就放下了，终于到了2012年的年底，趁着春节，有点时间，啃了一晚上，终于搞定了。以下作为笔记以备忘。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Virtualenv可以建立一个独立的Python虚拟环境，使Python环境不受另一个环境的干扰。我喜欢这种方式去部署Django应用，因为每个Djanog应用所引用到的第三方库是不完全相同的，隔开后，让环境免遭污染。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Django 1.3以后完全支持wsgi协议，新建的项目myproject文件夹里就有一个wsgi.py文件，我没有修改里面的东西，直接在虚拟环境里安装uWSGI,使用它和wsgi.py文件桥接即可。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;安装步骤：&lt;br /&gt;&lt;br /&gt;在虚拟环境里安装uWSGI: pip install uwsgi&lt;br /&gt;&lt;br /&gt;Virtualenv的安装和建立环境参考之前写的：《&lt;a href=&quot;/blog/panjj/Django/2011/06/05/521&quot; target=&quot;_blank&quot;&gt;Django环境搭建常用的工具及做法&lt;/a&gt;》 http://2goo.info/blog/panjj/Django/2011/06/05/521&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;完整步骤如下：&lt;br /&gt;#先安装pip工具&lt;br /&gt;apt-get install python-pip &amp;nbsp;&lt;br /&gt;#再安装virtualenv包&lt;br /&gt;pip install -U virtualenv&lt;br /&gt;#直接到/home/www-data/目录下建立一个twogoo的虚拟环境&lt;br /&gt;cd /home/www-data/&lt;br /&gt;virtualenv --no-site-packages --distribute twogoo &amp;nbsp;&lt;br /&gt;#进入建立好的twogoo环境 安装项目所需的python库，比如uWSGI PIL psycopg2 Django South等等&lt;br /&gt;cd twogoo &amp;nbsp;&lt;br /&gt;source bin/activate&lt;br /&gt;#在虚拟环境twogoo里安装uWSGI&lt;br /&gt;pip install uwsgi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#安装其他库&lt;br /&gt;pip install Django==1.4.5&lt;br /&gt;pip install South&lt;br /&gt;...&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;在虚拟环境里新建项目myproject:&lt;/p&gt;&lt;p&gt;django-admin.py startproject myproject&lt;/p&gt;&lt;br /&gt;这时候，/home/www-data/twogoo/ 这个文件夹就是我建立的虚拟环境了，twogoo里面的结构如下：&lt;br /&gt;twogoo&lt;br /&gt;..lib&lt;br /&gt;..local&lt;br /&gt;..include&lt;br /&gt;..myproject #我建立的项目&lt;br /&gt;....myproject&lt;br /&gt;......wsgi.py&lt;br /&gt;......settings.py&lt;br /&gt;......urls.py&lt;br /&gt;...... ...&lt;br /&gt;....static&lt;br /&gt;....media&lt;br /&gt;....templates&lt;br /&gt;....manage.py&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;安装uwsgi后，需要简单的配置启动参数,这次使用ini文件配置，当然可以使用其他的文件格式，参考官方文档吧。&lt;br /&gt;我在twogoo文件夹里建立一个配置文件 twogoo_uwsgi.ini,twogoo_uwsgi.sock&lt;br /&gt;cd /home/www-data/twogoo/&amp;nbsp;&lt;br /&gt;touch twogoo_uwsgi.ini&lt;br /&gt;touch twogoo_uwsgi.sock&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这时twogoo里面的结构如下：&lt;br /&gt;twogoo&lt;br /&gt;..lib&lt;br /&gt;..local&lt;br /&gt;..include&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;..myproject #我建立的项目&lt;br /&gt;....myproject&lt;br /&gt;......wsgi.py&lt;br /&gt;......settings.py&lt;br /&gt;......urls.py&lt;br /&gt;...... ...&lt;br /&gt;....static&lt;br /&gt;....media&lt;br /&gt;....templates&lt;br /&gt;....manage.py&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;..twogoo_uwsgi.ini #刚才建立的配置文件&lt;br /&gt;..twogoo_uwsgi.sock #配置文件用到的sock文件&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;twogoo_uwsgi.ini 文件里的内容如下：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[uwsgi]&lt;br /&gt;vhost = false #注意多个项目的时候不能true哦，否则多个项目都共用这个配置参数了，这个很折腾人&lt;br /&gt;plugins = python&lt;br /&gt;#socket = 127.0.0.1:9000 #这个注释掉了，我采用sock的方式，当然你可以使用端口方式，nginx配置的时候修改一下即可&lt;br /&gt;socket = /home/www-data/twogoo/twogoo_uwsgi.sock #配置文件用到的sock文件&lt;br /&gt;master = true&lt;br /&gt;enable-threads = true&lt;br /&gt;workers = 6 #进程数&lt;br /&gt;wsgi-file = /home/www-data/twogoo/myproject/myproject/wsgi.py &amp;nbsp;#这是项目wsgi.py文件的路径&lt;br /&gt;virtualenv = /home/www-data/twogoo/ &amp;nbsp; #twogoo虚拟环境的路径&lt;br /&gt;chdir = /home/www-data/twogoo/myproject &amp;nbsp;#twogoo下myproject项目的路径&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;配置文件已经好了，在twogoo_uwsgi.ini（/home/www-data/twogoo/）同级目录下可以启动uwsgi了：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nohup uwsgi --ini twogoo_uwsgi.ini&amp;amp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;好，ctrl+c&amp;nbsp;&lt;br /&gt;tail -f -n 1000 nohup.ou 可以看到uwsgi是否启动成功了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;剩下就是配置nginx，让nginx代理uwsgi进程：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;我那时是通过apt-get安装nginx的，默认路径在/etc/nginx/下，配置步骤：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;新建twogoo.conf文件，并配置参数&lt;br /&gt;touch /etc/nginx/sites-enabled/twogoo.conf&lt;br /&gt;nano /etc/nginx/sites-enabled/twogoo.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;配置参数如下：&lt;br /&gt;server {&lt;br /&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;br /&gt;&amp;nbsp; &amp;nbsp; server_name 2goo.info www.2goo.info;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; access_log /home/www/twogoo/logs/access.log;&lt;br /&gt;&amp;nbsp; &amp;nbsp; error_log /home/www/twogoo/logs/error.log;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; root /home/www/twogoo/myproject;&lt;br /&gt;&amp;nbsp; &amp;nbsp; index index.html index.htm;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; charset utf-8;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; location ~ ^/static/&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; root /home/www/twogoo/myproject/;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; expires 24h;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; access_log &amp;nbsp; off;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; location ~ ^/media/&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; root /home/www/twogoo/myproject/;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; expires 24h;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; access_log &amp;nbsp; off;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; location / {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; uwsgi_pass unix:/home/www/twogoo/twogoo_uwsgi.sock;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # uwsgi_pass 127.0.0.1:9000;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; include /etc/nginx/uwsgi_params;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proxy_http_version 1.1;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;配置完成了，重启nginx：&lt;br /&gt;/etc/init.d/nginx restart&lt;br /&gt;&lt;br /&gt;(完)</description>
   </item>
   
   <item>
     <title>最近的感悟</title>
     <link>/blog/panjj/other/2013/05/11/548</link>
     <description>&lt;p&gt;现在已经进入移动互联网时代，传统框架就新技术的引进也许已经达到了顶峰，比如Django，Ruby on Rails...这些框架是否适应这个时代了呢？我常想过这个问题，也尝试使用Django做一些后端服务的处理，发现不是很难用，它也能用，但不是最佳的方案。后端服务的开发，可能更偏向于轻量级的东西，不限于约定型的框架，它要求的灵活性和性能要高些，我觉得哪怕使用java的servlet+jdbc，都比用Django更适合。我不知道一个码农从事某方面技术领域之后，思维眼光是不是也会局限于该领域技术小范围？其实我近年在搞java android后端服务接口方面的工作，才有这样的想法。&lt;/p&gt;&lt;p&gt;为什么说servlet+jdbc更适合做移动互联网的后端开发框架呢？因为移动互联网的后端服务，高性能的密集计算之类的东东需要在服务器上处理，而不便交给终端，再者数据形态变动性也很大，随时有修改的可能，比如表结构，表关联的变动等等，而ORM这方面就显得有点吃力了，SQL语句可能来得更直接点。&lt;/p&gt;&lt;p&gt;当然这个时代传统的框架，也不是一无是处，他们依然保持快速开发的优势，特别对web层面的开发，使用他们，那是爽歪歪...而处理后端的服务，多数集中在json的输出，数据层和逻辑层的处理，他们照样能干，而且开发效率上依然很快。等产品发展壮大了，他们性能或灵活性跟不上，再换也是可行的。&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>忆儿时</title>
     <link>/blog/rosary/women/2012/11/27/547</link>
     <description>今天一直下雨，坐在靠背椅上看着窗外阴冷的天气，要不是因为小宝宝，我想我也没时间回忆小时候冬天的情形。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;小时候家里挺穷的，是那种穷得叮当响的农村家庭，所以我们最怕过冬。因为冬天没钱买鞋子、袜子、厚衣服。所有这些都是捡亲戚的，他们有得给就是我们最开心的事情，哪怕是补了又补，满身都是补丁我们都乐意，毕竟不用挨冻了嘛！如果没有那冬天就惨了，穿着一双被冻得硬邦邦的烂拖鞋缩头缩脑的一步步挪去学校，全身发抖，鼻子通红，天气再冷一点鼻子吸气都是酸溜溜的。那时候我也挺懒上学的，冬天的很多时候都是我最后一个进教室，操场上一个人影也没有，都在教室里早读呢 。不过很庆幸我的学习成绩好，老师从来不追究我为什么迟到也不会罚站，就这样在冬天里我晃晃悠悠的度过了小学生活。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;像那种阴冷又下雨的冬天，最期盼的是父母那天都不用去工作，然后给我们做好饭在家等着即将放学的我们，可惜这样的美事只能看着别人家发生。从我们懂事起，不管春夏秋冬从来都是姐弟几个分工合作把家务干完，顶多是下大雨的时候妈妈把菜从地里给我们摘回来。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 夏天还好，随便一件破衬衫也能过，没鞋就赤脚上学，泥巴小道不会很炙热，但是夜里也是煎熬，大热天没有风扇就桑拿过一个晚上，即便有风扇也经常没电，想不起当初是怎么抗过来的了。三六九月是农忙，最苦是六月，收割完后马上又重新种上新稻谷，最怕赶雨，那种一会下雨一会放晴的天气可以把人的小命折腾掉，刚晒干的稻谷眼巴巴的看着湿透，特别有一种想毁灭的感觉。生在90年之前的农村人相信都经历过这样的事情，地里收割后因为长期下雨泡水熬烂的稻草没法耕地，必须一担担挑上岸那种情形，又重又臭，为了赶时间耕作，全家出动干活是必须的。我想家里耕地多劳动力少的估计为这个事情死的心都有。&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;放学恰逢下雨也是件恼人的事情，我们没有别人那么幸运下雨天有家里人送伞，除非村里来送伞的叔叔婶婶好心去家里给我们带上一把，或是刚好父母有事回家知道了拜托他们也给我们带上，不然我们就只能祈求有人施舍共享或是雨奇迹般的突然停了。当然在那个穷苦的年代我们成为落汤鸡的可能性比较大，一直到上了中学，那种盼望有人送伞、放学有人做好饭的生活念头才消失了。所以，特别希望快点长大，快点小学毕业，我们就可以奔向梦寐以求的初中。因为离学校远，我们上中学都要住校，虽然学校的大锅饭超级清汤寡水，记忆最深的是晚餐：春吃苦麦菜（偶尔还会在仅有的一瓢青菜里吃到臭虫），夏天空心菜，冬天大白菜，一般中午都是豆芽（初中毕业最恐惧提起的事情）。吃饭、洗澡都是争前恐后跑着去排队，艰苦但我们也乐此不彼了好长一段时间。&lt;br /&gt;&amp;nbsp; &amp;nbsp; 后来的生活貌似越来越好，我们也逐渐忘记了儿时想起来就哆嗦的穷苦日子，现在拼命的为每天的生活熬着。每个年代都有不同的辛酸，不过还是希望以后回忆起现在的时候能像现在回忆儿时一样会心的一笑，跟朋友家人聊儿时还有很多笑点，那N年之后我们回忆现在的自己还有没有更多的开心事呢？&lt;br /&gt;&amp;nbsp;</description>
   </item>
   
   <item>
     <title>使用memcached作为Django的缓存</title>
     <link>/blog/panjj/Django/2012/11/20/546</link>
     <description>memcached不用介绍了，很出名的通用缓存中间件，Java，.Net，PHP，Python，Ruby等主流语言都能支持到。2goO网站之前一直用最原始的本地内存作为缓存，今天顺手改用memcached。过程很顺利，一两分钟就配好了，做下笔记：&lt;br /&gt;&lt;br /&gt;2goO现在用ubuntu系统，首先在系统安装memcached：&lt;br /&gt;sudo apt-get install memcached&lt;br /&gt;&lt;br /&gt;瞬间安装完毕，计划使用64M内存把它运行在11211端口下：&lt;br /&gt;memcached -d -m 64 -p 11211 -u root&lt;br /&gt;&lt;br /&gt;好了，memcached已经跑起来。最后就是在Django上使用它了，其中需要安装python-memcached作为桥梁，安装方法：&lt;br /&gt;pip install python-memcached&lt;br /&gt;&lt;br /&gt;Django settings配置文件里绑定刚才安装好的memcached&lt;br /&gt;&lt;br /&gt;CACHES = {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &#39;default&#39;: {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;BACKEND&#39;: &#39;django.core.cache.backends.memcached.MemcachedCache&#39;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;LOCATION&#39;: &#39;127.0.0.1:11211&#39;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;重启2goO，memcached正式被2goO项目所用。&lt;br /&gt;&lt;br /&gt;最后说说memcached服务的启动参数：&lt;br /&gt;&lt;br /&gt;-p 监听的端口&lt;br /&gt;-l 连接的IP地址, 默认是本机&lt;br /&gt;-d start 启动memcached服务&lt;br /&gt;-d restart 重起memcached服务&lt;br /&gt;-d stop|shutdown 关闭正在运行的memcached服务&lt;br /&gt;-d install 安装memcached服务&lt;br /&gt;-d uninstall 卸载memcached服务&lt;br /&gt;-u 以的身份运行 (仅在以root运行的时候有效)&lt;br /&gt;-m 最大内存使用，单位MB。默认64MB&lt;br /&gt;-M 内存耗尽时返回错误，而不是删除项&lt;br /&gt;-c 最大同时连接数，默认是1024&lt;br /&gt;-f 块大小增长因子，默认是1.25-n 最小分配空间，key+value+flags默认是48&lt;br /&gt;&lt;p&gt;-h 显示帮助&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;怎么查看进程能？&lt;/p&gt;netstat -anp|grep 11211&lt;br /&gt;&lt;br /&gt;查看11211端口端口可以看到它的进程：&lt;br /&gt;tcp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0 0.0.0.0:11211 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.0.0.0:* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LISTEN &amp;nbsp; &amp;nbsp; &amp;nbsp;28091/memcached&amp;nbsp;&lt;br /&gt;tcp6 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0 :::11211 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:::* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LISTEN &amp;nbsp; &amp;nbsp; &amp;nbsp;28091/memcached&amp;nbsp;&lt;br /&gt;udp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0 0.0.0.0:11211 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.0.0.0:* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 28091/memcached&amp;nbsp;&lt;br /&gt;udp6 &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 &amp;nbsp; &amp;nbsp; &amp;nbsp;0 :::11211 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:::* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;28091/memcached&lt;br /&gt;&lt;br /&gt;可以用暴力的方法停止进程pid：&lt;br /&gt;kill -9 28091&lt;br /&gt;&lt;br /&gt;当然建议使用安全的方法操作：&lt;br /&gt;sudo memcached -d stop -u root&lt;br /&gt;sudo memcached -d restart -u root&lt;br /&gt;&lt;br /&gt;（完）</description>
   </item>
   
   <item>
     <title>改造Django的分页类</title>
     <link>/blog/panjj/Django/2012/11/18/545</link>
     <description>&lt;p&gt;Django有个分页类Paginator，路径在django.core.paginator，我以前都是使用该类来对列表分页，在使用的过程中，产生了一些疑虑，比如以下代码就是分页用法的关键部分：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;page = int(request.GET.get(&amp;quot;page&amp;quot;,1))
 
blogs=Blog.objects.all()
paginator = Paginator(blogs,10)

page = paginator.page(page)&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;分页的时候我总是取出全部的博客列表传到分页方法，如果数据量大的时候，性能可是打折扣了；有的人说，Django ORM有惰性缓存。但是回头想想，Django的惰性缓存是不错，这个可以有，但如果博客数据量达到一定数量级，Django第一次取数据的时候，问题依然存在的。有的人说，不要all，直接取想要的数据即可，嗯filter一下条件也好，少了n多的数据，但filter了某个条件后，数据量依然很大的时候，怎么办？似乎没有办法了。&lt;br /&gt;&lt;br /&gt;办法是有的，自己修改修改吧，所以今天决定拿Paginator类来修改了，我的想法是：分页方法里传入参数个数不变，但传入的记录列表是自己需要的条数，比如10条，15条...但Django的ORM规则这么摆着，想改出完美无暇的东西出来，真是费点周折，不然Django基金会早就改过来了，嗯，来个缺憾美吧，呵呵。我仔细读了Paginator源码，做了一下改动，代码如下。&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;from math import ceil

class InvalidPage(Exception):
    pass

class PageNotAnInteger(InvalidPage):
    pass

class EmptyPage(InvalidPage):
    pass

class Paginator(object):

    def __init__(self, object_list, per_page, count=0, orphans=0, allow_empty_first_page=True):
        self.object_list = object_list
        self.per_page = int(per_page)
        self.orphans = int(orphans)
        self.allow_empty_first_page = allow_empty_first_page
        self._num_pages = None
        self.count=count
        

    def validate_number(self, number):
        try:
            number = int(number)
        except (TypeError, ValueError):
            raise PageNotAnInteger(&#39;That page number is not an integer&#39;)
        if number &amp;lt; 1:
            raise EmptyPage(&#39;That page number is less than 1&#39;)
        if number &amp;gt; self.num_pages:
            if number == 1 and self.allow_empty_first_page:
                pass
            else:
                raise EmptyPage(&#39;That page contains no results&#39;)
        return number


    def page(self, number):
        number = self.validate_number(number)
        return Page(self.object_list, number, self)

    def _get_num_pages(self):
        if self._num_pages is None:
            if self.count == 0 and not self.allow_empty_first_page:
                self._num_pages = 0
            else:
                hits = max(1, self.count - self.orphans)
                self._num_pages = int(ceil(hits / float(self.per_page)))
        return self._num_pages
    num_pages = property(_get_num_pages)

    def _get_page_range(self):
        return range(1, self.num_pages + 1)
    page_range = property(_get_page_range)

QuerySetPaginator = Paginator

class Page(object):
    def __init__(self, object_list, number, paginator):
        self.object_list = object_list
        self.number = number
        self.paginator = paginator

    def __repr__(self):
        return &#39;&amp;lt;Page %s of %s&amp;gt;&#39; % (self.number, self.paginator.num_pages)

    def __len__(self):
        return self.paginator.count

    def __getitem__(self, index):
        return list(self.object_list)[index]

    def __iter__(self):
        i = 0
        try:
            while True:
                v = self[i]
                yield v
                i += 1
        except IndexError:
            return

    def __contains__(self, value):
        for v in self:
            if v == value:
                return True
        return False

    def index(self, value):
        for i, v in enumerate(self):
            if v == value:
                return i
        raise ValueError

    def count(self, value):
        return sum([1 for v in self if v == value])


    def has_next(self):
        return self.number &amp;lt; self.paginator.num_pages

    def has_previous(self):
        return self.number &amp;gt; 1

    def has_other_pages(self):
        return self.has_previous() or self.has_next()

    def next_page_number(self):
        return self.number + 1

    def previous_page_number(self):
        return self.number - 1

    def start_index(self):
        if self.paginator.count == 0:
            return 0
        return (self.paginator.per_page * (self.number - 1)) + 1

    def end_index(self):
        if self.number == self.paginator.num_pages:
            return self.paginator.count
        return self.number * self.paginator.per_page
&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;用法如下：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;page = int(request.GET.get(&amp;quot;page&amp;quot;,1))

page_size=10
first,last=(page-1) * page_size, page * page_size
blogs=Blog.objects.all()[first:last]
count=Blog.objects.all().count()
paginator = Paginator(blogs,page_size,count)

page = paginator.page(page)&lt;/pre&gt;&lt;br /&gt;这用法有些多余的变量了，Paginator方法里需要多传一个记录总数，传入的实体列表不是全部的了，而是某个范围的列表，比如是第几页的数据。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;修改后的类，原先暴露出来的属性依然存在，不会少掉某个属性，用法上有细微的变化，要说修改后的优点，我只能说性能上可能会好些，至少不会取出全部的数据抛给分页方法，而是按需取数据，中间多了一个查询记录总数的操作，需要自己来：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;count=Blog.objects.all().count()&lt;/pre&gt;&lt;br /&gt;剩下的就没有什么了，这次改动可以说：为了性能损失了灵活性。Django自带的Paginator类，在使用体验上会更好，符合面向对象的规律，重用性更高，性能上你懂的。&lt;br /&gt;&lt;br /&gt;（完了）</description>
   </item>
   
   <item>
     <title>简易配置Django的Static文件</title>
     <link>/blog/panjj/Django/2012/11/18/544</link>
     <description>Django 1.3以后，采用static方式处理静态文件，比如网站的css js images等等，而以前所谓的media改成处理网站自身以外的媒体文件了。media和static用途上容易混淆，请移步上次讲的《&lt;a href=&quot;/blog/panjj/Django/2012/11/03/543&quot;&gt;对Django media和static概念的理解&lt;/a&gt;》。&lt;br /&gt;&lt;br /&gt;如果简单使用static，配置起来会比media要少一步，下面会比较一下。说到static，不能不说说Django开发环境和部署环境的区别，Django配置文件settings.py里的DEBUG变量就是主要的区别， DEBUG=True，说明是在开发环境（调试模式）下，DEBUG=False反之是在正式部署环境下使用。两者有很大的区别，比如缓存，出错信息的方式等等，还有今天说的静态文件的处理方式上。开发环境下静态文件都是通过Django自带的web服务器来处理的（这样会更方面）。如果把DEBUG设置成False，那么Django自带的web服务器自然不处理静态文件了，静态文件都交给nginx，apache来处理吧（这样会更高效）。&lt;br /&gt;&lt;br /&gt;具体说说static在开发环境下怎么配置吧。&lt;br /&gt;&lt;br /&gt;这次主要拿Django 1.4版本来做配置，这个要事先声明，因为1.4以后，Django的项目结构发生很大的变化，如果下面的配置做法放到Django 1.3上肯定不适应了，值得注意哦。staitc的配置只要在settings.py里做即可。&lt;br /&gt;&lt;br /&gt;DEBUG=True&lt;br /&gt;这个设定环境是处在开发环境下。&lt;br /&gt;&lt;br /&gt;然后自己建立一个变量SITE_ROOT，变量不是必须的，只是为了方面重用，名字可以随意起。&lt;br /&gt;import os&lt;br /&gt;SITE_ROOT=os.path.join(os.path.abspath(os.path.dirname(__file__)),&#39;..&#39;)&lt;br /&gt;变量值为项目的根目录，也就是settings.py的存放位置的上一层。&lt;br /&gt;&lt;br /&gt;然后给静态文件变量赋值，告诉Django，静态文件在哪里&lt;br /&gt;STATIC_ROOT = os.path.join(SITE_ROOT,&#39;static&#39;)&lt;br /&gt;&lt;br /&gt;说到这里，我还是说说项目文件结构吧，这个容易蒙人，比如这次的讲的项目结构如下：&lt;br /&gt;myproject&lt;br /&gt;----myproject&lt;br /&gt;--------__init__.py&lt;br /&gt;--------settings.py&lt;br /&gt;--------urls.py&lt;br /&gt;--------wsgi.py&lt;br /&gt;----blog&lt;br /&gt;--------__init__.py&lt;br /&gt;--------models.py&lt;br /&gt;--------views.py&lt;br /&gt;--------test.py&lt;br /&gt;----static&lt;br /&gt;--------css&lt;br /&gt;------------style.css&lt;br /&gt;--------js&lt;br /&gt;------------jquery.js&lt;br /&gt;--------images&lt;br /&gt;------------me.jpg&lt;br /&gt;&lt;p&gt;----media&lt;/p&gt;&lt;p&gt;--------upload&lt;/p&gt;&lt;p&gt;----manage.py&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;注意项目的结构，你会发现SITE_ROOT就是&lt;br /&gt;myproject&lt;br /&gt;----myproject&lt;br /&gt;的路径。&lt;br /&gt;&lt;br /&gt;STATIC_ROOT就是&lt;br /&gt;myproject&lt;br /&gt;----static&lt;br /&gt;的路径。&lt;br /&gt;&lt;br /&gt;好，接着配置说&lt;br /&gt;STATIC_URL = &#39;/static/&#39;&lt;br /&gt;给静态文件url一个后缀，在templates里用到的。&lt;br /&gt;&lt;br /&gt;最后关键的部分是STATICFILES_DIRS以下配置&lt;br /&gt;STATICFILES_DIRS = (&lt;br /&gt;&amp;nbsp; &amp;nbsp; (&amp;quot;css&amp;quot;, os.path.join(STATIC_ROOT,&#39;css&#39;)),&lt;br /&gt;&amp;nbsp; &amp;nbsp; (&amp;quot;js&amp;quot;, os.path.join(STATIC_ROOT,&#39;js&#39;)),&lt;br /&gt;&amp;nbsp; &amp;nbsp; (&amp;quot;images&amp;quot;, os.path.join(STATIC_ROOT,&#39;images&#39;)),&lt;br /&gt;)&lt;br /&gt;简要说一下，static文件夹在项目里，有css js images 三个文件夹（看项目结构），他们的路径分别是：&lt;br /&gt;os.path.join(STATIC_ROOT,&#39;css&#39;)，os.path.join(STATIC_ROOT,&#39;js&#39;)，os.path.join(STATIC_ROOT,&#39;images&#39;)；&lt;br /&gt;我们分别给他们起三个别名css，js，images（你可以随意给，不过为了易记，我们原名称指定别名了）&lt;br /&gt;&lt;br /&gt;到这里staitc算是配置完成了，并不需要再urls.py里配置相关的东西，Django就会自动找到对的路径解析静态文件了，也是在配置上static比media少了一步。&lt;br /&gt;&lt;br /&gt;&lt;p&gt;配置好了，在templates 就能正常使用静态文件了。怎么用？拿一个templates讲解吧。&lt;/p&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html lang=&amp;quot;zh-CN&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta charset=utf-8&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;staitc例子&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;{{STATIC_URL}}css/style.css&amp;quot; media=&amp;quot;screen&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;{{STATIC_URL}}js/jquery.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;img src=&amp;quot;{{STATIC_URL}}images/me.jpg&amp;quot;&amp;quot; alt=&amp;quot;img&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;注意{{STATIC_URL}}就是取配置文件settings.py里的STATIC_URL变量,解析出来的就是：/static/。&lt;br /&gt;而{{STATIC_URL}}css/style.css最终解析出来的就是我们想要的：/static/css/style.css，Django会根据配置文件找到相应的文件。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;快到尾声的时候，讲讲正式部署环境怎么设置吧：&lt;br /&gt;DEBUG=False&lt;br /&gt;首先把DEBUG设置为False，告诉Django环境是正式的非调试模式下了，然后Django就不再通过自己来处理静态页面了，最后静态文件都交给Nginx Apache来处理了。&lt;br /&gt;&lt;p&gt;说说Nginx怎么配置，才能正确解析静态文件吧,在一个server里添加一个location静态文件处理&lt;/p&gt;location &amp;nbsp;/static/ {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; root &amp;nbsp;/home/www-data/twogoo/myproject/;&lt;br /&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;这个也有一个容易犯错的地方，就是路径，有的同学常常指定这样的路径：/home/www-data/twogoo/myproject/staitc/;这样Nginx应该找不到静态文件的，因为Nginx会跑到/home/www-data/twogoo/myproject/staitc/staitc/路径里找,而不是/home/www-data/twogoo/myproject/staitc，注意这点，静态文件处理上你会顺很多。&lt;br /&gt;&lt;br /&gt;（完了）</description>
   </item>
   
   <item>
     <title>对Django media和static概念的理解</title>
     <link>/blog/panjj/Django/2012/11/03/543</link>
     <description>早在Django 1.3时期，增加了staitc模块，之前media模块保留至今，当时项目使用Django 1.2，静态文件都使用media，习惯了用法，一直没有正式去看staitc的东西，当然项目一直没有用到static模块。Django 1.4后用了一段时间，基本知道怎么去用了。我想把当时的困惑重温一下，刚接触static的时候，最想知道的是：media和static两者到底有什么区别？或者说两者用途上有什么区别？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;那就说说两者的区别吧。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;media和static字面上理解，媒体文件和静态文件。字面上抽象确实不好理解。如果结合项目存在的东西去理解，发现概念会马上清晰起来。比如网站项目，需要css js 和图片(专属网站页面使用的)，这些文件就是常说的静态文件，统归于staitc下处理；而有些文件比如：用户上传的头像，音乐，文档，图片等等，并不是网站专属的文件，而是由用户自主上传/添加的媒体文件（很广的范畴），统归于media下处理。怎么样？有例子应该很好理解吧。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;两者的配置，对于初学者来说都不算很容易，这两个东西不是同一时间出来的，meida出来比较早，之前media涵盖了stiatc的用途，两个东西浑然一体，要一下子分开用，总得适应吧，再者Django的静态文件和媒体文件的处理方法上相比传统框架也算比较新颖，需要使用者自己去琢磨一翻，才有自己的理解。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;media的使用方法，比较熟悉了，下次想说说static的用法，自己做个笔记也好。</description>
   </item>
   
   <item>
     <title>使用SSH操作远程PostgreSQL数据库</title>
     <link>/blog/panjj/other/2012/11/03/541</link>
     <description>服务器安装了PostgreSQL 9.2数据库，而数据库不允许外部ip连接；手头只有个SSH账号，怎么操作建立一个数据库呢？今天做了初步的试探。之所以模拟自己的ubuntu服务器环境，因为下面的指令，会与环境有所差别，使用指令之前仔细检查实际的环境参数。&lt;br /&gt;&lt;br /&gt;数据库安装路径：&lt;br /&gt;/opt/PostgreSQL/9.2&lt;br /&gt;&lt;br /&gt;SSH账号：&lt;br /&gt;178.90.22.11&lt;br /&gt;root&lt;br /&gt;root123&lt;br /&gt;&lt;br /&gt;数据库的内部账号：&lt;br /&gt;postgres&lt;br /&gt;1234567&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;开始动工了，首先在本地终端 用SSH登录到远程服务器终端：&lt;br /&gt;ssh root@178.90.22.11&lt;br /&gt;&lt;br /&gt;这时远程会提示数据密码，输入root123回车 &amp;nbsp;完成登陆（第一次可能要自动生成一个密钥，只需回车确认即可）。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这时已经成功进入远程服务器的终端，关键的时刻到了，怎么在终端，建立一个PostgreSQL数据库呢？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;我们需要登录到服务器的数据库控制台，才能执行PostgreSQL语句，所以先登录到数据库控制台，我们用psql指令操作：&lt;br /&gt;&lt;br /&gt;/opt/PostgreSQL/9.2/bin/psql postgres postgres&lt;br /&gt;&lt;br /&gt;诠释：psql在/opt/PostgreSQL/9.2/bin/路径下，postgres postgres是postgres账号登录到postgres 数据库（默认的名称）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这时数据库要求输入数据库的密码（Password for user postgres:），输入1234567回车，成功进入数据库控制台，这时你会看到：&lt;br /&gt;psql.bin (9.2.1)&lt;br /&gt;Type &amp;quot;help&amp;quot; for help.&lt;br /&gt;postgres=#&lt;br /&gt;&lt;br /&gt;这时可以建立一个全新的数据库了,比如建立一个名叫2gooDB的，编码是utf-8的，模式为template0的，属于postgres账号的数据库：&lt;br /&gt;在#后输入：&lt;br /&gt;CREATE DATABASE 2gooDB OWNER postgres ENCODING &#39;utf-8&#39; TEMPLATE template0;&lt;br /&gt;&lt;br /&gt;PostgreSQL指令还挺严格的，注意一条语句结尾加上分号，表示语句的结束。&lt;br /&gt;指令参考：http://www.postgresql.org/docs/9.2/static/sql-createdatabase.html&lt;br /&gt;&lt;br /&gt;数据建立好了，如果发现起初没有规划好，想删除刚建立的数据库 2gooDB：&lt;br /&gt;DROP DATABASE IF EXISTS 2gooDB;&lt;br /&gt;&lt;br /&gt;至于修改数据库，指令选项就多点了，比如：&lt;br /&gt;ALTER DATABASE name RENAME TO new_name;&lt;br /&gt;ALTER DATABASE name OWNER TO new_owner;&lt;br /&gt;ALTER DATABASE name SET TABLESPACE new_tablespace;&lt;br /&gt;....&lt;br /&gt;&lt;p&gt;修改指令还真没有用过，以上三条指令应该好理解，确实没有把握，你只能删除后，再重新建立了。&lt;/p&gt;&lt;p&gt;各数据库之间的切换，MySQL 是use指令，PostgreSQL是&lt;/p&gt;&lt;p&gt;\c dbname&lt;/p&gt;&lt;p&gt;列出该数据库的所有表信息&lt;/p&gt;&lt;p&gt;\d&lt;/p&gt;&lt;p&gt;查看执行一条语句耗时：&lt;/p&gt;&lt;p&gt;\timing&lt;/p&gt;&lt;p&gt;提示 Timing is on.&lt;/p&gt;&lt;p&gt;select id from table1;&lt;/p&gt;&lt;p&gt;结果：Time: 162.181 ms&lt;/p&gt;&lt;p&gt;列出各数据库的信息(数据库名 用户 编码等信息)：&lt;/p&gt;&lt;p&gt;\l&lt;/p&gt;&lt;p&gt;数据库已经建立好，剩下的建表，数据初始化，都交给Django来做吧。&lt;/p&gt;&lt;p&gt;最后退出psql控制台指令：&lt;/p&gt;&lt;p&gt;\q&lt;/p&gt;&lt;p&gt;（完）&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>Django数据处理的优化</title>
     <link>/blog/panjj/Django/2012/04/21/536</link>
     <description>Django数据层提供各种途径优化数据的访问，一个项目大量优化工作一般是放在后期来做，早期的优化是“万恶之源”，这是前人总结的经验，不无道理。如果事先理解Django的优化技巧，开发过程中稍稍留意，后期会省不少的工作量。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;一 利用标准数据库优化技术：&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;传统数据库优化技术博大精深，不同的数据库有不同的优化技巧，但重心还是有规则的。在这里算是题外话，挑两点通用的说说：&lt;br /&gt;&lt;br /&gt;索引，给关键的字段添加索引，性能能更上一层楼，如给表的关联字段，搜索频率高的字段加上索引等。Django建立实体的时候，支持给字段添加索引，具体参考Django.db.models.Field.db_index。按照经验，Django建立实体之前应该早想好表的结构，尽量想到后面的扩展性，避免后面的表的结构变得面目全非。&lt;br /&gt;&lt;br /&gt;使用适当字段类型，本来varchar就搞定的字段，就别要text类型，小细节别不关紧要，后头数据量一上去，几亿几亿的数据，小字段很可能是大问题。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;二 了解Django的QuerySets：&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;了解Django的QuerySets对象，对优化简单程序有至关重要的作用。QuerySets是有缓存的，一旦取出来，它就会在内存里呆上一段时间，尽量重用它。举个简单的例子：&lt;br /&gt;&lt;br /&gt;了解缓存属性：&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; entry = Entry.objects.get(id=1)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; entry.blog &amp;nbsp; # 博客实体第一次取出，是要访问数据库的&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; entry.blog &amp;nbsp; # 第二次再用，那它就是缓存里的实体了，不再访问数据库&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;但下面的例子就不一样，&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; entry = Entry.objects.get(id=1)&lt;br /&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; entry.authors.all() &amp;nbsp; # 第一次all函数会查询数据库&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; entry.authors.all() &amp;nbsp; # 第二次all函数还会查询数据库&lt;/p&gt;all，count exists是调用函数（需要连接数据库处理结果的），注意在模板template里的代码，模板里不允许括号，但如果使用此类的调用函数，一样去连接数据库的，能用缓存的数据就别连接到数据库去处理结果。还要注意的是，自定义的实体属性，如果调用函数的，记得自己加上缓存策略。&lt;br /&gt;&lt;br /&gt;利用好模板的with标签：&lt;br /&gt;模板中多次使用的变量，要用with标签，把它看成变量的缓存行为吧。&lt;br /&gt;&lt;br /&gt;使用QuerySets的iterator()：&lt;br /&gt;通常QuerySets先调用iterator再缓存起来，当获取大量的实体列表而仅使用一次时，缓存行为会耗费宝贵的内存，这时iterator()能帮到你，iterator()只调用iterator而省去了缓存步骤，显著减少内存占用率，具体参考相关文档。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;三 数据库的工作就交给数据库本身计算，别用Python处理：&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1 使用 filter and exclude 过滤不需要的记录，这两个是最常用语句，相当是SQL的where。&lt;/p&gt;&lt;p&gt;2 同一实体里使用F()表达式过滤其他字段。&lt;/p&gt;3 使用annotate对数据库做聚合运算。&lt;br /&gt;&lt;br /&gt;不要用python语言对以上类型数据过滤筛选，同样的结果，python处理复杂度要高，而且效率不高， 白白浪费内存。&lt;br /&gt;&lt;br /&gt;使用QuerySet.extra()：&lt;br /&gt;extra虽然扩展性不太好，但功能很强大，如果实体里需要需要增加额外属性，不得已时，通过extra来实现，也是个好办法。&lt;br /&gt;&lt;br /&gt;使用原生的SQL语句：&lt;br /&gt;如果发现Django的ORM已经实现不了你的需求，而extra也无济于事的时候，那就用原生SQL语句吧，用Djangoango.db.connection.queries去实现你需要的东西。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;四 如果需要就一次性取出你所需要的数据：&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;单一动作（如：同一个页面）需要多次连接数据库时，最好一次性取出所有需要的数据，减少连接数据库次数。此类需求推荐使用QuerySet.select_related() 和 prefetch_related()。&lt;br /&gt;&lt;br /&gt;相反，别取出你不需要的东西，模版templates里往往只需要实体的某几个字段而不是全部，这时QuerySet.values() 和 values_list()，对你有用，它们只取你需要的字段，返回字典dict和列表list类型的东西，在模版里够用即可，这可减少内存损耗，提高性能。&lt;br /&gt;&lt;br /&gt;同样QuerySet.defer()和only()对提高性能也有很大的帮助，一个实体里可能有不少的字段，有些字段包含很多元数据，比如博客的正文，很多字符组成，Django获取实体时（取出实体过程中会进行一些python类型转换工作），我们可以延迟大量元数据字段的处理，只处理需要的关键字段，这时QuerySet.defer()就派上用场了，在函数里传入需要延时处理的字段即可；而only()和defer()是相反功能。&lt;br /&gt;&lt;br /&gt;使用QuerySet.count()代替len(queryset),虽然这两个处理得出的结果是一样的，但前者性能优秀很多。同理判断记录存在时，QuerySet.exists()比if queryset实在强得太多了。&lt;br /&gt;&lt;br /&gt;当然一样的结果，在缓存里已经存在，就别滥用count()，exists()，all()函数了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;五 懂减少数据库的连接数：&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;使用 QuerySet.update() 和 delete()，这两个函数是能批处理多条记录的，适当使用它们事半功倍；如果可以，别一条条数据去update delete处理。&lt;br /&gt;&lt;br /&gt;对于一次性取出来的关联记录，获取外键的时候，直接取关联表的属性，而不是取关联属性，如：&lt;br /&gt;&lt;p&gt;entry.blog.id&lt;/p&gt;&lt;p&gt;优于&lt;/p&gt;&lt;p&gt;entry.blog_id&lt;/p&gt;&lt;br /&gt;善于使用批量插入记录，如：&lt;br /&gt;Entry.objects.bulk_create([&lt;br /&gt;&amp;nbsp; &amp;nbsp; Entry(headline=&amp;quot;Python 3.0 Released&amp;quot;),&lt;br /&gt;&amp;nbsp; &amp;nbsp; Entry(headline=&amp;quot;Python 3.1 Planned&amp;quot;)&lt;br /&gt;])&lt;br /&gt;优于&lt;br /&gt;Entry.objects.create(headline=&amp;quot;Python 3.0 Released&amp;quot;)&lt;br /&gt;Entry.objects.create(headline=&amp;quot;Python 3.1 Planned&amp;quot;)&lt;br /&gt;前者只连接一次数据库，而后者连接两次哦。&lt;br /&gt;&lt;br /&gt;还有相似的动作需要注意的，如：多对多的关系，&lt;br /&gt;my_band.members.add(me, my_friend)&lt;br /&gt;优于&lt;br /&gt;my_band.members.add(me)&lt;br /&gt;my_band.members.add(my_friend)&lt;br /&gt;&lt;br /&gt;为什么，批量处理的角度自己琢磨一下。</description>
   </item>
   
   <item>
     <title>让Django根据自定义属性排序</title>
     <link>/blog/panjj/Django/2011/12/07/534</link>
     <description>刚开始开发博客的时候，本来想让博客按照阅读量，评论量，赞成数等属性，根据某个计算公式计算结果来排序，但后来因为在Django的ORM里不知道怎么写，又不想混杂一些SQL语句，所以一直没有实现。到了现在，想想通过ORM来实现，还是无法做到的。因为Django的QUERYSET里，根据几个属性的计算（如：分别求出各个属性值的比例，再求和，最后按照比例再除法或更复杂的计算）结果去filter，或order by，是无法做到的。&lt;br /&gt;&lt;br /&gt;现在想想，如果在models里，建立一个子def（自定义属性），专门负责几个内置属性的计算，返回结果。这样就相当是models实例的一个属性了，然后再在QUERYSET里排序，不就好了吗？可是仔细想想，还是不行，这样只是降低QUERYSET语句写法的复杂性，最后的order by还是取不到实例的子def（自定义属性）的返回值。最终还是回到原点了。&lt;br /&gt;&lt;br /&gt;最后，想到一个不是很地道的办法，那就是使用原生python的sorted()函数：&lt;br /&gt;object_list = sorted(Blog.objects.all(), key=lambda blog: blog.cir_val,reverse=True)&lt;br /&gt;&lt;br /&gt;这样就解决了。&lt;br /&gt;&lt;br /&gt;models里需要先定义一个自定义属性cir_val，根据某个算法把几个内置属性组合结果算出来。形如：&lt;br /&gt;&lt;br /&gt;def cir_val(self):&lt;br /&gt;&amp;nbsp; &amp;nbsp; return self.browse*1/5+self.comment*2/5+self.zan*3/5&lt;br /&gt;&lt;br /&gt;一时的思维掠过，我也不知道自己在写什么，总之解决了我一年来，来不及想的问题，只是不知道怎么表达问题罢了。&lt;p&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>让Nginx处理Django的静态文件</title>
     <link>/blog/panjj/Django/2011/12/04/533</link>
     <description>上次的《&lt;a href=&quot;http://2goo.info/blog/panjj/Django/2010/10/07/131&quot;&gt;Django静态文件的配置&lt;/a&gt;》，说的主要是针对开发环境的配置。在开发中难免要处理网站的css js image等静态文件，不用顾及性能，安全的问题，交给Django内部处理好了；但如果正式部署到服务器的时候，这样的配置就会影响到性能和安全性了，这时怎么办呢？嗯，交给Nginx处理好了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;假如项目的目录结构如下：&lt;br /&gt;myproject&lt;br /&gt;--app1&lt;br /&gt;--app2&lt;br /&gt;--media&lt;br /&gt;----css&lt;br /&gt;----js&lt;br /&gt;----images&lt;br /&gt;--templates&lt;br /&gt;--setting.py&lt;br /&gt;--urls.py&lt;br /&gt;--manage.py&lt;br /&gt;&lt;p&gt;--...&lt;/p&gt;解释：通常项目文件夹下有若干个app应用，如app1 app2&lt;br /&gt;我们把静态文件方在项目的根目录下，起名为media（这个可以任意起名，但顾名思义，起个明了的名字），media文件夹里分别新建 css，js，images文件夹，用他们放置样式，脚本，图片等用途。&lt;br /&gt;剩下的就是Django生成的settings urls manage配置文件了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这回计划在开发环境中，使用Django处理静态文件，而正式部署后使用Nginx来处理他们。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;首先在urls.py文件中最后加上以上代码&lt;br /&gt;if settings.DEBUG: &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; urlpatterns += patterns(&#39;&#39;,&lt;br /&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;url(r&#39;^media/(?P&amp;lt;path&amp;gt;.*)$&#39;, &#39;django.views.static.serve&#39;,&lt;br /&gt;&lt;span style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;{&#39;document_root&#39;: os.path.join(settings.SITE_ROOT,&#39;media&#39;)},name=&amp;quot;media&amp;quot;),&lt;br /&gt;&amp;nbsp; &amp;nbsp; )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;具体的意思是：如果是开发环境，让Django的django.views.static.serve来处理，而正式部署时，Django不做任何事情，让Nginx来处理，后面会讲到Nginx的配置问题。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;settings.DEBUG其实就是开发和部署的标示变量，部署的时候在settings里给DEBUG变量赋值False，让Django Templates屏蔽一切Debug;赋值True时，相反，是开启Debug，开发中出错以便查看一些错误信息。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;开发环境中，settings的配置如下：&lt;br /&gt;import os&lt;br /&gt;DEBUG = True&lt;br /&gt;TEMPLATE_DEBUG = DEBUG&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SITE_ROOT=os.path.abspath(os.path.dirname(__file__))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MEDIA_ROOT = os.path.join(SITE_ROOT,&#39;media&#39;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MEDIA_URL = &#39;/media/&#39;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;正式部署的时候，把变量DEBUG改成False即可。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;正式部署的时候，Nginx的静态文件配置很关键，先看代码：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;location ~ ^/media/ { &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; root /home/http/django_project/myproject/;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;expires 24h;&lt;br /&gt;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;access_log &amp;nbsp; off;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;如项目实际路径是：/home/http/django_project/myproject/，那以上的配置代码会到 /home/http/django_project/myproject/ 路径找 media文件夹。一两点值得注意的：&lt;/p&gt;&lt;p&gt;1 刚开始一直没有配置成功，原因是root的没配置正确，写成 root /home/http/django_project/myproject/media/ 了， 导致Nginx老找不到media文件夹。&lt;/p&gt;&lt;p&gt;2 还有一个值得注意的是：location ~ ^/media/ &amp;nbsp;要和实际的静态文件夹对应哦，如果写成location ~ ^/static/ &amp;nbsp;那肯定不行的&lt;/p&gt;&lt;p&gt;（完）&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;晚了，洗洗睡了。&lt;br /&gt;&lt;br /&gt;</description>
   </item>
   
   <item>
     <title>第二年使用Burst的VPS</title>
     <link>/blog/panjj/other/2011/12/04/532</link>
     <description>&lt;p&gt;第一年使用&lt;a href=&quot;https://service.burst.net/aff.php?aff=1714&quot;&gt;Burst的VPS&lt;/a&gt;,为它灵活的设置吸引，系统支持主流的Linux发行版本，如CentOS，Fedora，Debian，Ubuntu，Centoo,这么多的选择中，有喜欢的Debian，并且安装系统只需要在后台reload一下，花上几分钟的时间，一个纯净的系统就安装好了。剩下的就是自由的环境配置了。还有关键的就是学习用途，VPS的价格最具竞争价值，每个月5.95美元，买满一年，只收10个月的租金，在这个基础上，再打上7.5折，一年下来，就是300（约290）元不到。&lt;/p&gt;&lt;p&gt;今年继续购买，发票已经下来了：&lt;/p&gt;&lt;p&gt;VPS #1 (Virtual Private Server) - vePortal - (LOS ANGELES, CA) - (12/22/2011 - 12/21/2012) $59.51 USD&lt;br /&gt;Promotional Code: LOWENDLAVPS - 25.00% Recurring Discount $-14.88 USD&lt;br /&gt;------------------------------------------------------&lt;br /&gt;Sub Total: $44.63 USD&lt;br /&gt;Credit: $0.00 USD&lt;br /&gt;Total: $44.63 USD&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Amount: $44.63 USD&lt;br /&gt;Total Paid: $44.63 USD&lt;br /&gt;Remaining Balance: $0.00 USD&lt;br /&gt;Status: Paid&lt;br /&gt;&lt;/p&gt;&lt;p&gt;不过有个问题就是，&lt;a href=&quot;https://service.burst.net/aff.php?aff=1714&quot;&gt;Burst&lt;/a&gt;&amp;nbsp;的VPS #1 不是很稳定，有时会掉线，商业用途这点很致命，学习用途是超值的。&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>尽量不要使用Django select_related()</title>
     <link>/blog/baoyalv/Django/2011/12/01/531</link>
     <description>&lt;p&gt;Django的select_related()在1.3.1之前（包括1.3.1）都存在性能的问题，今天使用debug_toolbar大概测试了一下，depth=1，发现性能损失了20%以上，如果不指定depth，model关系复杂的时候，可能会损失更多。select_related()对关联多的实体本身是一个很好的方案，采用了内连接，减少数据库多次发起连接动作，按理来说性能会更优，但很奇怪，测试结果却相反。&lt;/p&gt;&lt;p&gt;自己的测试的实体集合，不采用select_related()，耗时76ms，sql连接数47，而用了select_related()后，耗时97ms，sql连接数37。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>无聊无题的无稽之谈</title>
     <link>/blog/panjj/other/2011/11/20/530</link>
     <description>&lt;p&gt;不记得什么时候开始有打开Django的Timeline观望的习惯了，思维有点乱，Google的Chrome才是真的版本帝，每天几十到几百条，甚者千余条bug Fixed，现在安装金丝雀，几乎每天都有更新，而且一两个月幸运才能逮到一个两个bug，这样的效率和质量让人羡慕不已。Django的Timeline上，每天都能看到几十条的Bug Fixed。平均应该有20条以上吧。嗯，用平稳来形容吧，再仔细看看Fixed了什么东西，都是一些琐碎的完善和扩展，没有太多的想要看的：想看到的比如：在ORM QuerySet上进行一些运算再filter再order；或者增强Forms的易用性，解决csrf通俗处理等等之类的。再看看Github上的Rails，也差不多的情形，都马不停蹄的进行中，以上说的是参与度。两边的阵容都很豪华，有不少的名人。&lt;/p&gt;&lt;p&gt;我喜欢Django，是因为Python语言简洁成熟，语言风格适合本人。而Django是以程序员的法则去引导开发，玩Django的或多或少为一些细节困扰，因为我们常常碰到市场的需求，碰到非技术人的要求，常常为他们那些看似无理的东西，感到愤怒，到最后想想也不无道理，有时候有得折腾。所以在界内，Django不能成为web framework的标准。&lt;/p&gt;&lt;p&gt;我倒觉得Rails倒是人们寻找的那个标准，没有深入，只是偶尔看看，不难理解，人总有感知的，谈谈想法而不是真相。他们有相似的地方，Rails有一种架势，不管黑猫白猫，能抓到老鼠就是好猫。Rails的大方向很准，有人心有市场，而且常常具备一些亮点，不足的是平台上的一致性还需要点时间发展。&lt;/p&gt;&lt;p&gt;这两个都是完美的框架。&lt;/p&gt;&lt;p&gt;同一时期，微框架也很出位，如：flask bottle，sinatra 等等，特点很多，易上手，性能出众，好扩展，插件丰富。框架本身就一千几千行的代码，实现的只是核心必要的功能。要想做一件东西出来，需要找插件来辅助，或可以造轮子，创造自己的插件。这样的框架也同样有利有弊，利：让第三方（或自己的分支）集中精力做好插件，做精品级的东西和同类插件竞争，优胜略汰，给用户争取精品中的精品；弊：选择的问题，用户精力的分散。&lt;/p&gt;&lt;p&gt;IT发展很快，这些东西已经是前浪，一些新新的东西已经出来了。Node不是语言，大概就是借助Javascript语言，Google V8，集中一些类语言的东西，封装在一起，让用户使用javascript语言开发服务端的东西。Mozilla也有自己的javascript引擎，同时也在开发类似Node的东西。&lt;/p&gt;&lt;p&gt;Node特点是 异步的 无阻塞的，性能极高。其下的web framework也陆续出来了，如：expressjs，geddy ，express on railway,活跃度，参与度比较高的应该是expressjs，它是sinatra 的node实现，算是一个微框架，express on railway就是从它那里引伸过来的，不过railway是类似rails的框架，参与度还不算很高。express on railway，express 的发明者都是从Rails阵营过来的，代码中常常看到Rails的身影。Geddy是个特别的框架，有点像Django，也有Rails的身影，作者最近很忙，开发进展有点缓慢，听说他正参与另一个更重要的项目。开发类似Django Rails的Node框架（或者是full-stack框架），可能需要更多的人，技术和基金。发现完善的东西为其尚早。相反微框架开发要轻松的多，所以express就很活跃。现在还是初期，相信很快就有full-stack框架出来了。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>悲剧的辉腾[转]</title>
     <link>/blog/baoyalv/other/2011/10/20/529</link>
     <description>&lt;strong&gt;一大哥花了&lt;span style=&quot;color:#ff0000;&quot;&gt;256万&lt;/span&gt;买了辆W12 缸6.0的大众辉腾, 杯具了。&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;某日，大哥进停车场，正在自动泊车中，管理员冲他喊道：“喂，开帕萨特的小心点，别把边上的新宝马320给撞了，你赔不起”，大哥一怒吼到 “老子的车够买他10辆了”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;某日，大哥进加油站，一不留神，加油小妹的93号枪就对准开加了，大哥汗都下来了，吼到”老子是要加 97的，谁让你自作主张加93了.” 小妹好心的回说“大哥，帕萨特加93的绝对没事，我每天都加多少帕萨特，93的省钱，不是奔驰宝马没必要加97”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;某日，大哥去夜店泡妞，看中一正妹后，相约一并外出霄夜，兼后半场，正妹看大哥气质不凡，跟他走向停车的地方，一见大哥的辉腾，正妹扭头就走，并说到“开桑塔纳还好意思约我吃霄夜，早知道跟刚才开凯美瑞的走了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;某日，大哥宴请一高官，开车到其家接他，大哥恭敬的把车门打开，高官走近一看，说道：“我还是让司机把A6开出来吧”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;某日，大哥到一处接朋友，此小区门口黑车众多，大哥在车上等朋友之际听到黑司机们议论，“这么好的车也出来拉活啊”，另一位说到“可能单位的吧，不过帕萨特怎么也得百公里8个油吧”，大哥摇下车窗怒吼之“老子百公里得17个油”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;某日，大哥一朋友之重要朋友结婚，要借一重量级头车，大哥厚道之人，虽爱车之心无比，也大方出借，事后朋友还车，大哥自豪问到“怎么样，让你在朋友面前长脸了吧”，朋友叹道“别提了，朋友非说这是一老款的帕萨特太不拉风，最后又花钱租了一辆当前的红色跑车当婚车，你的车就排到婚车队最后一个专门接送上了年纪的老人家和儿童了。”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;某日，大哥停完车正往外准备走的时候，听见身后两个年轻人的对话，一人说到“快看，哇塞，辉腾啊！”，大哥心中一片舒坦，终于有识货之人，正爽之际，听到另一年轻人说“晕，还真有傻子买它啊。”&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://pic13.nipic.com/20110318/5446201_210037276000_2.jpg&quot; width=&quot;600&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>Ubuntu下Nodejs开发环境快速搭建</title>
     <link>/blog/panjj/other/2011/09/09/528</link>
     <description>&lt;p&gt;Nodejs很火，在Ubuntu下搭建它的开发环境尝尝鲜，有一个捷径，它能让系统自动帮你安装所需要的东西，我们生成一段shell脚本，让它来完成以下工作：&amp;nbsp;安装git下最新的node，node包管理器，Forever和Cloud9IDE工具（可选），mongodb 10gen；脚本的正常运行需要比较新板的Ubuntu，而且需要联网，因为它会连接网络去下载所有的依赖包顺序安装。&lt;/p&gt;&lt;p&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;#!/bin/sh
# Update System
echo &#39;System Update&#39;
apt-get update
echo &#39;Update completed&#39;
apt-get install libssl-dev git-core pkg-config build-essential curl
# Clone Node.js
echo &#39;Clone Node.js&#39;
cd /usr/src
git clone https://github.com/joyent/node
echo &#39;Node.js clone completed&#39;
# Install Node.js
echo &#39;Install Node.js&#39;
cd node
./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install
echo &#39;Node.js install completed&#39;
# Install Node Package Manager
echo &#39;Install Node Package Manager&#39;
curl http://npmjs.org/install.sh | sh
echo &#39;NPM install completed&#39;
# Install Forever
echo &#39;Install Forever&#39;
npm install forever
echo &#39;Forever install completed&#39;
# Install Cloud9IDE
echo &#39;Install Cloud9IDE&#39;
git clone git://github.com/ajaxorg/cloud9.git
echo &#39;Cloud9IDE install completed&#39;
# Install MongoDB
echo &#39;Install MongoDB&#39;
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
echo &amp;quot;deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo apt-get update
sudo apt-get install mongodb-10gen
echo &#39;MongoDB install completed.&#39;&lt;/pre&gt;安装方法：&lt;/p&gt;&lt;p&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;$ cd ~/
$ nano -w node.sh&lt;/pre&gt;把以上代码粘贴到node.sh文件里，ctrl+o 保存，ctrl+x 退出nano。如果你没有安装nano，请google一下安装吧。&lt;/p&gt;&lt;p&gt;然后执行脚本：&lt;/p&gt;&lt;p&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;$ chmod a+x node.sh &amp;amp;&amp;amp; sudo ./node.sh&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;如果网速足够快，一会功夫即可完成安装。等安装完毕，我们来个测试：&lt;/p&gt;&lt;p&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;mkdir node_project
cd node_project
nano -w server.js&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;粘贴以下著名的代码：&lt;/p&gt;&lt;p&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;var http = require(&#39;http&#39;);
http.createServer(function (req, res) {
  res.writeHead(200, {&#39;Content-Type&#39;: &#39;text/plain&#39;});
  res.end(&#39;Hello World\n&#39;);
}).listen(1337, &amp;quot;127.0.0.1&amp;quot;);
console.log(&#39;Server running at http://127.0.0.1:1337/&#39;);&lt;/pre&gt;ctrl+o 保存，ctrl+x 退出nano，尝试跑它 ：&lt;/p&gt;&lt;p&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;node server.js&lt;/pre&gt;在浏览器中打开 ：http://127.0.0.1:1337,看到久违的Hello World了吧？&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>Django使用Uploadify组件实现图片上传</title>
     <link>/blog/panjj/Django/2011/08/04/527</link>
     <description>Uploadify组件上传文件很酷，可以实现文件进度上传，而且可以批量上传各种文件。好处还很多，具体详情登到官网看看文档了解吧。在同类组件中，Uploadify做的也很出色。打算在Django中用它，两个东西结合使用，也算简单，但有些细节需要记下来，以便以后重用。&lt;br /&gt;&lt;br /&gt;这次只说上传图片部分，至于上传文件，其实可以照猫画虎，而且来得会简单些，只是python程序后端写法的区别而已，前端代码Uploadify一律平等对待，图片也是文件一种特例罢了。&lt;br /&gt;&lt;br /&gt;Django使用Uploadify组件实现图片上传，可以分为两个大步骤。&lt;br /&gt;一：前端引用Uploadify所需要的类库和脚本样式。&lt;br /&gt;Uploadify会用到JQuery类库，还有自己的几个脚本和样式文件，搭配好了Django的静态文件，让Django正确解析静态文件，就算成功一半了，静态文件的配置参考先前的博客：《&lt;a href=&quot;/blog/panjj/Django/2010/10/07/131&quot;&gt;Django静态文件的配置&lt;/a&gt;》。&lt;br /&gt;&lt;br /&gt;静态文件我们统一存放在根目录的site_media文件夹下，到官网http://www.uploadify.com/下载Uploadify-2.14组件，放在site_media下的plugin，随意起名：uploadify_214，再新建个文件下upload，来存放上传的图片。&lt;br /&gt;&lt;br /&gt;前端样式脚本引用代码：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;html&quot;&gt;&amp;lt;link href=&amp;quot;/site_media/plugin/uploadify_214/uploadify.css&amp;quot; type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; /&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/site_media/js/jquery.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/site_media/plugin/uploadify_214/swfobject.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/site_media/plugin/uploadify_214/jquery.uploadify.v2.1.4.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;引用文件的路径算是很重要，具体静态配置决定这些。首先引用Uploadify的样式文件，然后就是先引用JQuery类库，再引用Uploadify自身脚本swfobject.js和jquery.uploadify.v2.1.4.min.js&lt;br /&gt;&lt;br /&gt;Uploadify组件初始化代码：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
$(document).ready(function() {
  $(&#39;#file_upload&#39;).uploadify({
    &#39;uploader&#39;  : &#39;/site_media/plugin/uploadify_214/uploadify.swf&#39;,
    &#39;script&#39;    : &#39;{%url uploadify_script%}&#39;,
    &#39;cancelImg&#39; : &#39;/site_media/plugin/uploadify_214/cancel.png&#39;,
    &#39;folder&#39;    : &#39;/upload&#39;,
    &#39;auto&#39;      : false,//
    &#39;multi&#39;: true,//设置可以上传多个文件
    &#39;queueSizeLimit&#39;:20,//设置可以同时20个文件
    &#39;removeCompleted&#39;:false,//
    &#39;sizeLimit&#39;:10240000,//设置上传文件大小单位kb
    &#39;fileExt&#39;:&#39;*.jpg;*.gif;*.png&#39;,//设置上传文件类型为常用图片格式
    &#39;fileDesc&#39;:&#39;Image Files&#39;,                
    &#39;onInit&#39;: function () {},
    &#39;onError&#39; : function (event,ID,fileObj,errorObj) {
            $(&#39;#id_span_msg&#39;).html(&amp;quot;上传失败，错误码:&amp;quot;+errorObj.type+&amp;quot; &amp;quot;+errorObj.info);
        },
    &#39;onSelect&#39;: function (e, queueId, fileObj) {
        $(&#39;#id_span_msg&#39;).html(&amp;quot;&amp;quot;);
    },
    &#39;onAllComplete&#39;: function (event, data) {
        if(data.filesUploaded&amp;gt;=1){
          $(&#39;#id_span_msg&#39;).html(&amp;quot;上传成功！&amp;quot;);
        }                    
    }                
  });
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;初始化脚本，有几个关键的参数需要说明一下：&lt;br /&gt;uploader是组件需要flash编译文件，里面封装了Uploadify核心的处理程序。&lt;br /&gt;script是后端上传文件程序的url，这个是后面说的，需要自己写。&lt;br /&gt;folder是上传文件的目录，这里我们不计划使用它，随便写一个充数。&lt;br /&gt;&lt;p&gt;前端html代码&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;html&quot;&gt;&amp;lt;h1&amp;gt;Uploadify组件上传方式&amp;lt;/h1&amp;gt;
&amp;lt;div class=&amp;quot;demo-box&amp;quot;&amp;gt;
    &amp;lt;input id=&amp;quot;file_upload&amp;quot; type=&amp;quot;file&amp;quot; name=&amp;quot;Filedata&amp;quot;&amp;gt;
    &amp;lt;div id=&amp;quot;file_uploadQueue&amp;quot; class=&amp;quot;uploadifyQueue&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;javascript:$(&#39;#file_upload&#39;).uploadifyUpload()&amp;quot;&amp;gt;上传图片&amp;lt;/a&amp;gt;
    &amp;lt;a href=&amp;quot;javascript:$(&#39;#file_upload&#39;).uploadifyClearQueue()&amp;quot;&amp;gt;取消上传&amp;lt;/a&amp;gt;
    &amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;&amp;lt;span id=&amp;quot;id_span_msg&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;二：写好后端图片上传的方法。&lt;br /&gt;如果刚开始就把写好的上传程序和Uploadify结合，也许不是很明智的做法，因为过程中遇到问题，我们不很确定是后端程序的bug还是Uploadify的配置错误，所以建议先把写好的后端上传程序，用传统的上传方式，去测试，把程序调试好了，再和Uploadify结合，这样就会很清楚是那块出现问题了。&lt;br /&gt;所以我们先写个通用的上传函数_upload，用传统的上传方式测试它，该函数：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;def _upload(file):
    &#39;&#39;&#39;图片上传函数&#39;&#39;&#39;
    if file:            
        path=os.path.join(settings.MEDIA_ROOT,&#39;upload&#39;)
        file_name=str(uuid.uuid1())+&amp;quot;.jpg&amp;quot;      
        path_file=os.path.join(path,file_name)
        parser = ImageFile.Parser()  
        for chunk in file.chunks():  
            parser.feed(chunk)  
        img = parser.close()
        try:
            if img.mode != &amp;quot;RGB&amp;quot;:
                img = img.convert(&amp;quot;RGB&amp;quot;)
            img.save(path_file, &#39;jpeg&#39;,quality=100)
        except:
            return False
        return True
    return False&lt;/pre&gt;&lt;br /&gt;这个程序接收一个Files对象，在内存里处理保存好图片，程序就几行代码就不解释太多了。大体是先构造一个物理地址用于保存图片，再把内存里的图片信息存入img临时变量中，判断图片的模式，如果不是RGB，转换，保存成jpg格式，返回True，失败返回False。&lt;br /&gt;该函数测试通过了，能完成保存图片的使命，最后就是写Uploadify需要的函数uploadify_script&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;@csrf_exempt
def uploadify_script(request):
    response=HttpResponse()
    response[&#39;Content-Type&#39;]=&amp;quot;text/javascript&amp;quot;
    ret=&amp;quot;0&amp;quot;        
    file = request.FILES.get(&amp;quot;Filedata&amp;quot;,None)        
    if file:            
        if _upload(file):
            ret=&amp;quot;1&amp;quot;
        ret=&amp;quot;2&amp;quot;
    response.write(ret)
    return response&lt;/pre&gt;&lt;br /&gt;Uploadify使用uploadify_script函数，通过Get方式把图片控件的信息提交给该函数，函数返回&amp;quot;text/javascript&amp;quot;的内容类型，如果成功写入字符1，否则写入非1字符。页面的图片控件命名Filedata，Django通过file = request.FILES.get(&amp;quot;Filedata&amp;quot;,None)获取控件的图片信息，如果不是空的，就传递给刚才说的通用函数_upload，保存图片。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;整个过程算是完结了，过程中值得注意的：&lt;br /&gt;1 常常出现IO Error，如果我们已经测试_upload和uploadify_script后端程序，他们都没有错误，很多程度上是因为前端的Uploadify初始化脚本的问题，确认Uploadify几个关键的参数能不能正确解析，或者是静态文件配置没成功造成的。&lt;br /&gt;2 Forbidden (403)这是Django引发的，Django1.3引进了CSRF，我们需要进行一些处理，给uploadify_script一个装饰器@csrf_exempt，记住这个很关键，很折腾人。&lt;br /&gt;3 cannot write mode P as JPEG，这个是后端上传程序的错误，是因为上传了非jpg类型的图片，我们需要需要转换成RGB，再保存，上面已经提过。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;好了不废话，例行给一个例子，看&lt;a href=&quot;/media/files/djangoandajax.zip&quot;&gt;源码&lt;/a&gt;就明白了,本地浏览地址：&lt;a href=&quot;http://127.0.0.1:8000/uploadify/&quot;&gt;http://127.0.0.1:8000/uploadify/&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/media/files/django_uploadify.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>Django和Ajax的那些事儿-Ajax Post</title>
     <link>/blog/panjj/Django/2011/07/26/526</link>
     <description>上回的《&lt;a href=&quot;/blog/panjj/Django/2011/07/03/524&quot;&gt;Django和Ajax的那些事儿-Ajax Get&lt;/a&gt;》,讲过$.get(),它是从Django服务端获取我们想要的数据，然后渲染到前端html。今天说到Post方式，葫芦画瓢，让人想:会不会有$.post()。嗯，没错，的确有$.post()，官网示例：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;$.post(&amp;quot;test.cgi&amp;quot;,
       { name: &amp;quot;John&amp;quot;, time: &amp;quot;2pm&amp;quot; },
       function(data){
          alert(&amp;quot;Data Loaded: &amp;quot; + data);
       } 
);&lt;/pre&gt;不妨说说，$.post()和传统form下的post动作是一样的，是把form里的各表单值提交给服务端。但$.post()是在前端触发，把数据提交给服务器端，整个过程都是无刷新的。官网示例就很清楚说明这个过程：&lt;br /&gt;$.post()把{ name: &amp;quot;John&amp;quot;, time: &amp;quot;2pm&amp;quot; }这两个数据，提交给test.cgi，让test.cgi在服务端处理后返回data给自己进一步处理（示例把返回的数据alert出来）。&lt;br /&gt;&lt;br /&gt;这回通过添加一篇博客，来看看Django下结合JQuery Ajax Post是怎么做的。为了更好说明，下面的例子尽量要简单。博客只有标题和内容，这次的任务就是使用JQuery把页面的输入的标题和内容，提交给Django保存到数据库，整个过程要做到不刷新。&lt;br /&gt;&lt;br /&gt;看看前端的js代码：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;function post_one_blog()
{
    msg=$(&amp;quot;#msg&amp;quot;);
    title=$(&#39;#id_title&#39;).val();
    content=$(&#39;#id_content&#39;).val();
    msg.html(&amp;quot;submit...&amp;quot;);
    $.post(&#39;{%url ajax_add%}&#39;,{&#39;title&#39;:title,&#39;content&#39;:content}, function(ret) {        
        if(ret==&#39;1&#39;){
            msg.html(&amp;quot;提交成功！&amp;quot;);
        }
        else if(ret==&amp;quot;2&amp;quot;){
            msg.html(&amp;quot;请输入标题和内容！&amp;quot;);
        }
        else{
            msg.html(&amp;quot;系统错误！&amp;quot;);
        }
    });
}&lt;/pre&gt;&lt;br /&gt;前期工作是，获取页面上三个元素对象：用于提示的span标签，博客标题，正文的输入框。这三个对象到后面，将给$.post()调用。这段代码核心部分是$.post()整个函数，我们给它传了一个服务端的url（保存数据到数据库的页面）和两个Post参数{&#39;title&#39;:title,&#39;content&#39;:content}，在服务端处理后，会返回“1” “2”..等这些标识（这个任由自己定义，只要明白当中的意义即可），最后$.post()获取到服务端返回的标识，根据它们判断服务端处理的怎么样了，再给出适当的提示。&lt;br /&gt;&lt;br /&gt;看看服务端的处理方法：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;def ajax_add(request):
    response=HttpResponse()
    response[&#39;Content-Type&#39;]=&amp;quot;text/javascript&amp;quot;
    title=request.POST.get(&amp;quot;title&amp;quot;,&#39;&#39;)
    content=request.POST.get(&amp;quot;content&amp;quot;,&#39;&#39;)
    ret=&amp;quot;0&amp;quot;
    if title and content:        
        blog=Article(title=title,content=content,user=request.user)
        blog.save()
        ret=&amp;quot;1&amp;quot;
    else:
        ret=&amp;quot;2&amp;quot;
    response.write(ret)
    return response&lt;/pre&gt;幸好Python拥有简洁的语法，一看就大概知道什么意思来了。因为刚才是想服务端给我们返回简单的字符串如“1”“2”此类的标识即可，所以首先确定返回的内容格式为&amp;quot;text/javascript&amp;quot;，然后再接收js给post过来的数据{&#39;title&#39;:title,&#39;content&#39;:content}，怎么接收呢？看看代码：title=request.POST.get(&amp;quot;title&amp;quot;,&#39;&#39;) &amp;nbsp;content=request.POST.get(&amp;quot;content&amp;quot;,&#39;&#39;)，因为js提交数据的行为是Post方式，我们自然使用Djanog提供的request.POST.get(）方法来获取，题外话，如果js是采用Get方式，我们应该能想到使用request.GET.get(）方法。注意大小写。python区分大小写的。&lt;br /&gt;接下来，判断接收到的两个参数都不为空，才构造一个博客对象，保存它，返回“1”；否则返回“2”。这时候整个动作都完成了。&lt;br /&gt;&lt;br /&gt;&lt;p&gt;这些做好后，你可能急着测试，并发现了404之类的错误，其实在Django 1.2之后使用Post方式数据提交，都涉及到了安全性的问题，Django默认打上了CSRF中间件，你需要在post页面上加一些代码，让程序正常使用：&lt;/p&gt;&lt;p&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;$(document).ajaxSend(function(event, xhr, settings) {
    function getCookie(name) {
        var cookieValue = null;
        if (document.cookie &amp;amp;&amp;amp; document.cookie != &#39;&#39;) {
            var cookies = document.cookie.split(&#39;;&#39;);
            for (var i = 0; i &amp;lt; cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + &#39;=&#39;)) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
    function sameOrigin(url) {
        // url could be relative or scheme relative or absolute
        var host = document.location.host; // host + port
        var protocol = document.location.protocol;
        var sr_origin = &#39;//&#39; + host;
        var origin = protocol + sr_origin;
        // Allow absolute or scheme relative URLs to same origin
        return (url == origin || url.slice(0, origin.length + 1) == origin + &#39;/&#39;) ||
            (url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin + &#39;/&#39;) ||
            // or any other URL that isn&#39;t scheme relative or absolute i.e relative.
            !(/^(\/\/|http:|https:).*/.test(url));
    }
    function safeMethod(method) {
        return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
    }

    if (!safeMethod(settings.type) &amp;amp;&amp;amp; sameOrigin(settings.url)) {
        xhr.setRequestHeader(&amp;quot;X-CSRFToken&amp;quot;, getCookie(&#39;csrftoken&#39;));
    }
});&lt;/pre&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;好了，就到这里。之前的《&lt;a href=&quot;/blog/panjj/Django/2011/07/03/524&quot;&gt;Django和Ajax的那些事儿-Ajax Get&lt;/a&gt;》有&lt;a href=&quot;/media/files/djangoandajax.zip&quot;&gt;例子&lt;/a&gt;，里面包含了所有的代码，可供参考。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/media/files/djangoandajax-post.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>Asp.net Ajax页面和JQuery的ready函数冲突</title>
     <link>/blog/panjj/csharp/2011/07/26/525</link>
     <description>&lt;p&gt;Asp.net Ajax和Asp.net结合得很完美，发现不够用的时候，难免想到了Jquery。一般Jquery和Asp.net Ajax这两样东西结合使用也常见，如果处理好的话，并不会冲突。但最近发现Jquery的ready()函数在PostBack回来的时候，ready里执行的动作竟然无效了，第一印象：会不会Asp.net Ajax和Jqueryd的ready冲突了，然后去掉Asp.net Ajax脚本的引用，果然一切正常了。思前思后，最后给Asp.net Ajax ScriptManager添加一个add_endRequest()，Jquery的ready终于恢复正常了。&lt;/p&gt;&lt;p&gt;脚本如下：&lt;/p&gt;&lt;p&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
    Sys.WebForms.PageRequestManager.getInstance()
    .add_endRequest(EndRequestHandler);
    
    function EndRequestHandler(sender, args) {
        if (args.get_error() == undefined) {
            PageInit();
        }
    }

    function PageInit() {
        $(document).ready(function() {
            //TODO 
        });
    }

    PageInit(); 
 &amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;其中，添加上这段代码，还有一些注意的事项，如果这段脚本放置在head里，会发生一个错误，提示Sys对象undefined，因为Asp.net Ajax的ScriptManager，还没有状态完，Sys对象肯定找不到，这时把这脚本放置在body末尾，一切都正常了。&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>Django和Ajax的那些事儿-Ajax Get</title>
     <link>/blog/panjj/Django/2011/07/03/524</link>
     <description>如果看过Jquery的ajax文档，很容易在各平台使用他们，ajax也不算是什么新鲜的事了，在Django中结合Jquery使用Ajax，让Django开发的应用发挥更好的用户体验，同时降低服务器的负担，也不是难事。&lt;br /&gt;来看Jquery下Ajax的使用说明，http://api.jquery.com/category/ajax/，哗，有十几个函数，如果想更生动学习，请移步到lulu studio：http://www.cnblogs.com/QLeelulu/archive/2008/04/21/1163021.html&lt;br /&gt;以下只挑jQuery.get() jQuery.post() jQuery.getJSON()三个函数来做例子，Django应用围绕这三个函数讲解：&lt;br /&gt;&lt;br /&gt;jQuery.get()也可以更简洁为：$.get(),官文使用例子：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;$.get(&#39;ajax/test.html&#39;, function(data) {
  $(&#39;.result&#39;).html(data);
  alert(&#39;Load was performed.&#39;);
});&lt;/pre&gt;&lt;br /&gt;例子$.get()两个参数，一个url和一个函数，函数处理返回数据data。data到底是什么，alert出来的内容便是了。它是url返回的html代码，&lt;br /&gt;&lt;br /&gt;django提供url，返回一个html页面，比如一篇博客的标题和内容的html片段，然后$.get()对html进行处理，把html片段填充到一个div容器中，那就构成了一个完整的ajax get操作了，代码表演吧：&lt;br /&gt;定义一个url函数，根据blog id返回一篇博客html片段：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;url(r&#39;^ajax_get_one_blog/$&#39;, &#39;ajax_get_one_blog&#39;,name=&amp;quot;ajax_get_one_blog&amp;quot;),&lt;/pre&gt;views定义ajax_get_one_blog python函数：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;def ajax_get_one_blog(request,template_name=&amp;quot;blog/ajax_get_one_blog.html&amp;quot;):
    ctx=dict()
    id=request.GET.get(&amp;quot;id&amp;quot;)
    blog=get_object_or_404(Article,pk=int(id))
    ctx[&amp;quot;obj&amp;quot;]=blog
    return render_to_response(template_name,ctx,context_instance=RequestContext(request))&lt;/pre&gt;其中ajax_get_one_blog的request.GET.get(&amp;quot;id&amp;quot;)是通过$.get()提供：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;function get_one_blog(id)
{
    var container = $(&#39;#blog_container&#39;);
    container.html(&amp;quot;loading...&amp;quot;);
    $.get(&#39;{%url ajax_get_one_blog%}&#39;,{&#39;id&#39;:id}, function(ret) {        
        container.html(ret);
    });
}&lt;/pre&gt;通过$.get()的第二个参数{&#39;id&#39;:id}给服务器端函数ajax_get_one_blog提供id参数，第一个参数是url，第三个函数function(ret)，已经从服务器端返回了html片段，最后填充到div中，整个无刷新过程就算完毕。&lt;br /&gt;人口当然是客户端的一个a链接：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;html&quot;&gt;&amp;lt;a href=&amp;quot;javascript:get_one_blog({{obj.id}})&amp;quot;&amp;gt;{{obj.title}}&amp;lt;/a&amp;gt;&lt;/pre&gt;&lt;p&gt;好，又到11点了，这次的ajax get操作就讲到这里了，剩下下回分解吧，最后会附上博文的 &lt;a href=&quot;/media/files/djangoandajax.zip&quot;&gt;代码例子&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/media/files/djangoandajax.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>ubuntu11.04编译安装nginx1.0.4</title>
     <link>/blog/panjj/other/2011/07/03/523</link>
     <description>在ubuntu下，一直都是采用sudo apt-get intall nginx命令方式来安装nginx，由于ubuntu源里的nginx版本有点旧，如果想换成最新版本的版本，只能采用编译的方式去升级了。升级nginx的办法很多实践博文，这里推荐一个：&lt;a href=&quot;http://www.inginx.com/nginx-update/&quot;&gt;http://www.inginx.com/nginx-update/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;最近nginx1.0出来后，版本更新的很勤，打开官网发现版本已经升级到1.0.4，参考李高峰的笔记：&lt;a href=&quot;http://www.ligaofeng.com/?p=1107&quot;&gt;http://www.ligaofeng.com/?p=1107&lt;/a&gt;&amp;nbsp;尝试来个全新编译，把遇到的问题也记下来：&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1 卸载原有陈旧的nginx：&lt;/strong&gt;&lt;br /&gt;sudo aptitude remove nginx&lt;br /&gt;如果没有安装aptitude，安装它：&lt;br /&gt;sudo apt-get install aptitude&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2 编译安装nginx之前的准备&lt;/strong&gt;，需要三大类库：PCRE，OpenSSL，zlib，要下载各自的源码，编译安装他们，过程中尝尽了苦头，结尾总结一下：&lt;br /&gt;&lt;br /&gt;PCRE的官网：http://www.pcre.org&lt;br /&gt;来到用户目录下，下载最新版本,解压 配置 编译 安装：&lt;br /&gt;cd ~&lt;br /&gt;wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz&lt;br /&gt;tar zxvf pcre-8.12.tar.gz&lt;br /&gt;cd pcre-8.12&lt;br /&gt;sudo ./configure --prefix=/usr/local/pcre&lt;br /&gt;sudo make&amp;nbsp;&lt;br /&gt;sudo make install&lt;br /&gt;总结：按照以上命令必能安装成功，因为安装的过程中需要新建一系列的目录，常常发生权限的问题，这次碰到程序在新建/usr/local/pcre文件夹时，没有权限，解决办法：&lt;br /&gt;sudo mkdir /usr/local/pcre&lt;br /&gt;sudo chmod -v-R 777 /usr/local/pcre&lt;br /&gt;要参考具体问题解决他们，安装完成，可以把该文件夹权限恢复原样。&lt;br /&gt;&lt;br /&gt;OpenSSL官网：http://www.openssl.org&lt;br /&gt;来到用户目录下，下载最新版本,解压 配置 编译 安装：&lt;br /&gt;cd ../&lt;br /&gt;wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz&lt;br /&gt;tar zxvf openssl-1.0.0d.tar.gz&lt;br /&gt;cd openssl-1.0.0d&lt;br /&gt;sudo ./config&lt;br /&gt;sudo make&amp;nbsp;&lt;br /&gt;sudo make install&lt;br /&gt;总结：同样是新建文件夹openssl的时候，没有权限，按照pcre的办法，解决他们。&lt;br /&gt;&lt;br /&gt;zlib官网：http://www.zlib.net&lt;br /&gt;来到用户目录下，下载最新版本,解压 配置 编译 安装：&lt;br /&gt;cd ../&lt;br /&gt;wget http://www.gzip.org/zlib/zlib-1.2.3.tar.gz&lt;br /&gt;tar zxvf zlib-1.2.3.tar.gz&lt;br /&gt;cd zlib-1.2.3&lt;br /&gt;sudo ./configure&lt;br /&gt;sudo make&amp;nbsp;&lt;br /&gt;sudo make install&lt;br /&gt;总结：同样是新建文件夹的时候，没有权限，按照pcre的办法，解决他们。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3 安装Nginx&lt;/strong&gt;&lt;br /&gt;Nginx官网：http://www.nginx.org&lt;br /&gt;来到用户目录下，下载最新版本,解压 配置 编译 安装：&lt;br /&gt;cd ../&lt;br /&gt;wget http://nginx.org/download/nginx-1.0.4.tar.gz&lt;br /&gt;tar zxvf nginx-1.0.4.tar.gz&lt;br /&gt;cd nginx-1.0.4&lt;br /&gt;&lt;br /&gt;新建一个nginx组和nginx组下的nginx用户：&lt;br /&gt;groupadd nginx&lt;br /&gt;useradd -r -g nginx nginx&lt;br /&gt;&lt;br /&gt;配置nginx模块，请参考Nginx官网的配置：http://wiki.nginx.org/NginxInstallOptions，简单配置一下模块，当然可以找到相应的help：&lt;br /&gt;./configure --help&lt;br /&gt;&lt;br /&gt;废话少说,来个简单的配置：&lt;br /&gt;&lt;br /&gt;sudo ./configure --with-http_stub_status_module --prefix=/usr/local/nginx --with-openssl=～/openssl-1.0.0d --with-pcre=～/pcre-8.12 --without-http_gzip_module&lt;br /&gt;sudo make&amp;nbsp;&lt;br /&gt;sudo make install&lt;br /&gt;&lt;br /&gt;配置总结：原以为安装了PCRE OpenSSL，在配置Nginx时，把路径直接指向到安装路径下，结果并不是，指向的是源码路径下，如刚才把PCRE OpenSSL下载在用户目录下～/，配置:--with-openssl=～/openssl-1.0.0d --with-pcre=～/pcre-8.12&lt;br /&gt;如果配置成：--with-openssl=/usr/local/ssl/ --with-pcre=/user/local/pcre&lt;br /&gt;安装会失败，这个值得注意的。&lt;br /&gt;&lt;br /&gt;如果安装完成，nginx会安装在指定/usr/local/nginx目录下，看看简单帮助，然后启动一下nginx：&lt;br /&gt;/usr/local/nginx/sbin/nginx -h&lt;br /&gt;&amp;gt;&amp;gt;&lt;br /&gt;nginx: nginx version: nginx/1.0.4&lt;br /&gt;nginx: Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]&lt;br /&gt;&lt;br /&gt;Options:&lt;br /&gt;&amp;nbsp; -?,-h &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : this help&lt;br /&gt;&amp;nbsp; -v &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: show version and exit&lt;br /&gt;&amp;nbsp; -V &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: show version and configure options then exit&lt;br /&gt;&amp;nbsp; -t &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: test configuration and exit&lt;br /&gt;&amp;nbsp; -q &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: suppress non-error messages during configuration testing&lt;br /&gt;&amp;nbsp; -s signal &amp;nbsp; &amp;nbsp; : send signal to a master process: stop, quit, reopen, reload&lt;br /&gt;&amp;nbsp; -p prefix &amp;nbsp; &amp;nbsp; : set prefix path (default: /usr/local/nginx/)&lt;br /&gt;&amp;nbsp; -c filename &amp;nbsp; : set configuration file (default: conf/nginx.conf)&lt;br /&gt;&amp;nbsp; -g directives : set global directives out of configuration file&lt;br /&gt;&lt;br /&gt;好，知道怎么启动重启nginx了：&lt;br /&gt;/usr/local/nginx/sbin/nginx&amp;nbsp;&lt;br /&gt;/usr/local/nginx/sbin/nginx -s reload&lt;br /&gt;&lt;br /&gt;也可通过向nginx进程发送信号来停止nginx&lt;br /&gt;步骤1：查询nginx主进程号&lt;br /&gt;ps -ef | grep nginx&lt;br /&gt;在进程列表里面找master进程，它的编号就是主进程号了。&lt;br /&gt;步骤2：发送信号&lt;br /&gt;从容停止Nginx：&lt;br /&gt;kill -QUIT 主进程号&lt;br /&gt;快速停止Nginx：&lt;br /&gt;kill -TERM 主进程号&lt;br /&gt;强制停止Nginx：&lt;br /&gt;pkill -9 nginx&lt;br /&gt;&lt;br /&gt;最后nginx的配置文件在：/usr/local/nginx/conf/nginx.conf&lt;br /&gt;&lt;br /&gt;参考李高峰的笔记：&lt;a href=&quot;http://www.ligaofeng.com/?p=1107&quot;&gt;http://www.ligaofeng.com/?p=1107&lt;/a&gt;&amp;nbsp;&lt;br /&gt;</description>
   </item>
   
   <item>
     <title>小区里的事件</title>
     <link>/blog/rosary/women/2011/06/17/522</link>
     <description>&lt;div class=&quot;hd&quot;&gt;&lt;span&gt;凌晨4点，先是两个人的大吵大闹，然后是一个女人的哀嚎，过后又变为阴森恐怖的狂笑，小孩子的哭声也跟着时大时小，到早上5点，天蒙蒙亮了，小区里有清洁工扫地的声音，那些可怕的声音也跟着变小消失，天也亮了。只要凌晨醒来都会听到一些莫名其妙的声音，不知道是认为制造还是真实存在。&lt;/span&gt; &lt;/div&gt;&lt;div id=&quot;mood_footer_b1725c1ca1b6fa4d48d40000&quot; class=&quot;ft&quot;&gt;之前也有过类似的情况，比如：一个女的拼命拍门叫开门，要么就是一个人嚎啕痛苦，也有过某个不知道是男是女的人一个晚上在学鬼叫。&lt;/div&gt;&lt;div id=&quot;mood_footer_b1725c1ca1b6fa4d48d40000&quot; class=&quot;ft&quot;&gt;最还在凌晨醒来，只要醒来都会听到这样的声音，挺可怕的。不知道是认为制造还是真实存在，总感觉某天会发生什么更可怕的事。&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>Django环境搭建常用的工具及做法</title>
     <link>/blog/panjj/Django/2011/06/05/521</link>
     <description>自己购买了个廉价的vps，部署Django开发的网站，汲取强大互联网的信息，结合自己需要的环境尝试去搭配，从中把最常用的工具和命令记录下来。服务器我选择Debian，觉它更适合自己。Debian自带主流版本的Python，最先要安装的是easy_install 和pip，因为这两个工具，可以方便安装python所需要的类库。&lt;br /&gt;&lt;br /&gt;安装方法：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;apt-get install python-pip
pip install easy_install
pip install -U virtualenv&lt;/pre&gt;&lt;br /&gt;我们只需要给python安装基本的类库即可，比如上面的pip easy_install和virtualenv等即可，其他和django项目紧密相关的，而因django项目不同而不用的类库，我们采用virtualenv工具具体安装就好了，比如:Django psycopg &amp;nbsp;MySQLdb simplejson python-openid flup html5lib simplejson等。这样的做的好处很多，这些类库版本都不断更新，我们具体的项目具体安装具体的版本，而不会影响全局的python环境，把他们都集中在一个项目中。而且可以使用pip把这些虚拟环境的类库清单生成一个txt文件，然后再通过pip一键式安装到位。&lt;br /&gt;&lt;br /&gt;开始我们的环境搭建之旅吧。我们创建一个django虚拟环境：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;virtualenv --no-site-packages --distribute twogoo
cd twogoo
source bin/activate&lt;/pre&gt;&lt;br /&gt;此时，已经进入虚拟环境，接下来就是使用pip或者easy_install安装项目的类库了，如：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;pip install django
pip install psycopg
pip install flup
...&lt;/pre&gt;&lt;br /&gt;我们目前在项目环境文件twogoo下，当下建立项目程序文件夹myproject&lt;br /&gt;mkdir myproject&lt;br /&gt;我们已经安装了flup，如果要启动fastcgi，在虚拟环境中启动想要的端口（9090或者其他的）即可：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;python myproject/manage.py runfcgi method=threaded host=127.0.0.1 port=9090&lt;/pre&gt;&lt;br /&gt;启动了fastcgi，如果我们修改了程序，想再重启，使用以上的命令是无效的，我们需要关闭掉9090端口，再重新启动：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;python myproject/manage.py runfcgi method=threaded host=127.0.0.1 port=9090&lt;/pre&gt;&lt;br /&gt;查看端口的PID,关闭掉端口的办法：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;netstat -anp|grep 9090  #(端口号)&lt;/pre&gt;&lt;br /&gt;这时PID会列举出来，比如PID是8920，我们kill掉它&lt;br /&gt;kill 8920&lt;br /&gt;&lt;br /&gt;刚才说通过pip一键式安装虚拟环境，办法是先导出环境的类库列表：&lt;br /&gt;pip freeze &amp;gt; req.txt&lt;br /&gt;这时会生成req.txt文件，里面是具体的类库名和版本号，格式如下：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;Django==1.3
Markdown==2.0.3
PIL==1.1.7
South==0.7.3
distribute==0.6.15
django-debug-toolbar==0.8.5
flup==1.0.3.dev-20110405
html5lib==0.90
psycopg2==2.4.1
python-openid==2.2.5
simplejson==2.1.6
wsgiref==0.1.2&lt;/pre&gt;&lt;br /&gt;我们再根据req.txt文件，创建一个wow项目虚拟环境：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;cd ../
pip install -E wow -r twogoo/req.txt&lt;/pre&gt;&lt;br /&gt;此时会创建一个wow文件夹，里面和twogoo环境是一模一样的。&lt;br /&gt;&lt;br /&gt;如果要退出虚拟环境，请使用：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;plain&quot;&gt;deactivate&lt;/pre&gt;</description>
   </item>
   
   <item>
     <title>让PostgreSQL9支持外部IP连接</title>
     <link>/blog/panjj/other/2011/05/13/518</link>
     <description>&lt;p&gt;PostgreSQL9默认是不允许外部IP链接的，这和多数的数据库一样，是一种保护策略。有时候，我们需要开启，让外部的客户端链接，对数据库进行操作。做法也很简单，找到PostgreSQL的安装路径，liunx默认的安装路径可能在&amp;nbsp;/opt/PostgreSQL/9.0，我们进入/opt/PostgreSQL/9.0/data/目录下，找到pg_hba.conf配置文件，找到以下的行：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;# IPv4 local connections:

host    all             all             127.0.0.1/32            md5&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;改成：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
host    all             all             0.0.0.0  0.0.0.0             md5&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;然后重启PostgreSQL9数据库 service postgresql-9.0 restart 即可。&lt;/p&gt;&lt;p&gt;官方并不推荐我们的做法，主要是为了数据的安全，避免外部对数据库进行攻击，修改的时候，切记要谨慎。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>用OSQA搭建一个问答社区</title>
     <link>/blog/panjj/other/2011/05/12/517</link>
     <description>在海外，问答社区相当盛行，stackoverflow和quora两个知名的社区都很火。在中国，有“百度知道”，但“百度知道”所涉及到的内容范围五花八门，作为程序员，有时候很希望有个中国版的stackoverflow，一个纯粹的中文IT问答社区。问答社区对整个IT社区还是有优势的，比如：和篇幅长而又有内涵的博客相比，你可以更直接更专注于问题和答案本身，更有效率地解决问题（当然问答和博客的作用本质还是有点区别）。&lt;br /&gt;&lt;br /&gt;基于种状况，一直想搭建一个良好的IT问答社区，类似stackoverflow的网站。得益于OSQA开源项目，今天终于把它部署到服务器上：http://5-wow.com 。在此声明，本文需要大家的理解，请不要马上断言本文是软文、广告之类的，OSQA和5-wow.com本身并没有任何的商业成份，是个非盈利的问答社区，本人只是想尝试借助开源项目来服务国内的IT社区，让热爱IT技术的朋友群力群策，聚在一起探讨解决问题；如果你觉得事情本身还有点意义，请别向我仍石头，鸡蛋之类的。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;OSQA开源项目很简洁，整个项目大概就是几千行代码，“麻雀虽小而五脏俱全”，基本实现了问答操作所需的功能，包括答案的评论、回复和投票；还有就是会员的积分统计功能。这些细节功能组在一起，很适合问答社区中使用，每个人进来都是社区的一份子，所有的问答都是会员自己监督和管理，内容的质量完全由社区掌控，所以一旦会员参与，就会意识到自己就是管理员。积分统计功能，是通过奖牌榜形式来表现，奖牌暂时细分成30多种奖项，看奖牌榜，别人很容易发现自己所擅长的领域，可能有些爵位很适合自己...整个问答社区就这样潜移默化地把权重分配给会员，同时会员的影响力也渐渐发挥出来了。&lt;br /&gt;&lt;br /&gt;问答社区里的东西简单而又不失乐趣，欢迎新老程序员加入到 5-wow.com IT问答社区来，有问题 没有问题的时候，进来看看，到时候你就会发现：在IT社区里，其实自己还是有某种魅力和影响力的。</description>
   </item>
   
   <item>
     <title>PostgreSQL数据库完美备份恢复</title>
     <link>/blog/panjj/other/2011/05/02/516</link>
     <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL自带一个客户端pgAdmin，里面有个备份，恢复选项，也能对数据库进行备份 恢复（还原），但最近发现数据库慢慢庞大的时候，经常出错，备份的文件过程中出错的几率那是相当大，手动调节灰常有限。所以一直寻找完美的备份恢复方案。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;梦里寻他千百度，伊人却在灯火阑珊处...其实PostgreSQL内置不少的工具，寻找的备份恢复方案就在其中：pg_dump，psql。这两个指令在数据库的安装目录下，比如我自己本地安装的，路径形如：C:\Program Files\PostgreSQL\9.0\；然后进入到bin文件夹，会看到不少的exe文件，这就是PostgreSQL内置的工具了。里面会找到pg_dump.exe，psql.exe两个文件。我们怎么用他们？&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;用法：&lt;/p&gt;&lt;p&gt;备份数据库，指令如下：&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;pg_dump -h 164.82.233.54 -U postgres databasename &amp;gt; C:\databasename.bak&lt;/pre&gt;&lt;p&gt;开始-运行-cmd 弹出dos控制台；然后 在控制台里，进入PostgreSQL安装目录bin下：&lt;/p&gt;&lt;p&gt;cd C:\Program Files\PostgreSQL\9.0\bin&lt;/p&gt;最后执行备份指令：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;pg_dump -h 164.82.233.54 -U postgres databasename &amp;gt; C:\databasename.bak&lt;/pre&gt;&lt;p&gt;指令解释：如上命令，pg_dump 是备份数据库指令，164.82.233.54是数据库的ip地址（必须保证数据库允许外部访问的权限哦~），当然本地的数据库ip写 localhost；postgres 是数据库的用户名；databasename 是数据库名。&amp;gt; 意思是导出到C:\databasename.bak文件里，如果没有写路径，单单写databasename.bak文件名，那么备份文件会保存在C:\Program Files\PostgreSQL\9.0\bin 文件夹里。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;恢复数据库，指令如下：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;psql -h localhost -U postgres -d databasename &amp;lt;  C:\databasename.bak&lt;/pre&gt;&lt;p&gt;指令解释：如上命令，psql是恢复数据库命令，localhost是要恢复到哪个数据库的地址，当然你可以写上ip地址，也就是说能远程恢复（必须保证数据库允许外部访问的权限哦~）；postgres 就是要恢复到哪个数据库的用户；databasename 是要恢复到哪个数据库。&amp;lt; &amp;nbsp;的意思是把C:\databasename.bak文件导入到指定的数据库里。&lt;/p&gt;&lt;p&gt;以上所有的是针对windows而言的，如果在linux下，会不会有效？&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;在linux里依然有效。有一个值得注意的是：如果直接进入PostgreSQL的安装目录bin下，执行命令，可能会出现 找不到pg_dump，psql的现象，我们在可以这样：&lt;/p&gt;&lt;p&gt;备份：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;/opt/PostgreSQL/9.0/bin/pg_dump -h 164.82.233.54 -U postgres databasename &amp;gt; databasename.bak&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;恢复：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;sql&quot;&gt;/opt/PostgreSQL/9.0/bin/psql -h localhost -U postgres -d databasename &amp;lt; databasename.bak&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;好了就写这么多了。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>Django外键的删除</title>
     <link>/blog/panjj/Django/2011/04/23/515</link>
     <description>Django 1.3版本以后，对models外键进行了扩展，记得之前models的外键删除，都是级联删除的，举个例子好理解：Cateogry和Blog关系，Cateory有多个Blog，所以常常在Blog实体里新建一个category的外键，当我们删除一个Category的时候，归属该Category的所有Blog，同时都被删除了，这就是级联删除了。&lt;br /&gt;&lt;br /&gt;有个题外话，Django的models和底层的数据库联系很密切，models之间创建的关联，都直接映射到数据库，是真正的物理关联，个人觉得这种方式，有利有弊，好的方面就是更好保持了数据的一致性；感觉不好的是，这样数据库的表之间都建立物理关联，开发过程中建立models的时候，最好想好了表的关联，不然后面models加关联，需要在数据库上手动去关联，而且如果想在数据库操作数据的时候，需要考虑这些关联，不然你可能遇到一些关联的问题。在Rails上，这点都是在程序级上定义models关联，数据库并没有是正的物理关联。既然要用Django，应该先抛开这些，接受它的设计理念，才不会有困惑。&lt;br /&gt;&lt;br /&gt;Django 1.3 models之间关联还是保存原来的做法，当你删除一个外键的时候，外键关联的实体也被删除，但在创建models的时候，外键增加了一个可选参数on_delete。今天看看它的用法：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;class Blog（models.Model）:
user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
...&lt;/pre&gt;当blog对应的user被删除了，blog里的user字段会设置为空值，而不是连同blog也删除掉，这点比原先的进了一小步，有点选择性了。当然，如果没有指定on_delete，Django还是采用级联的删除方式。&lt;br /&gt;&lt;br /&gt;on_delete有多少个选项呢：&lt;br /&gt;CASCADE:这就是默认的选项，级联删除，你无需显性指定它。&lt;br /&gt;PROTECT: 保护模式，如果采用该选项，删除的时候，会抛出ProtectedError错误。&lt;br /&gt;SET_NULL: 置空模式，删除的时候，外键字段被设置为空，前提就是blank=True, null=True,定义该字段的时候，允许为空。&lt;br /&gt;SET_DEFAULT: 置默认值，删除的时候，外键字段设置为默认值，所以定义外键的时候注意加上一个默认值。&lt;br /&gt;SET(): 自定义一个值，该值当然只能是对应的实体了，看一下代码：&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;def get_sentinel_user():
    return User.objects.get_or_create(username=&#39;deleted&#39;)[0]

class MyModel(models.Model):
    user = models.ForeignKey(User, on_delete=models.SET(get_sentinel_user))&lt;/pre&gt;以上的代码，当删除mymodel对应的user的时候，mymodel不会删除掉，而是找到一个名叫 deleted的user，与之重建关联。</description>
   </item>
   
   <item>
     <title>Django ORM捨遗--返回QuerySets的某些函数</title>
     <link>/blog/panjj/Django/2011/04/09/514</link>
     <description>整个Django框架，如果要问喜欢那部分，我首先想到的就是它的ORM；Django集成的ORM好用，秉承了Pythonic的理念，还有很浓的OO味道。单个看ORM的函数，似乎是管中窥豹，如果你把各种函数组合起来写，你会发现，原来也可以这么用的，太酷了吧？但还是单独看看这些函数的，等你逐个了解了，一气呵成的感觉就有了。&lt;br /&gt;&lt;br /&gt;拾遗，随意拿些函数来说说，读者只需了解，理念就形成了，有兴趣的稍微记忆下，就是自己的东西了。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.annotate&lt;/strong&gt;&lt;br /&gt;说到annotate，不能提到聚合aggregate（Avg,Count,Max,Min...）,因为annotate需要结合这些聚合函数，才能发挥它的作用，比如博客应用，博客和博客的回复Commnet，取出博客列表的同时，你如果也要取出回复的条数，应该怎么写呢：&lt;br /&gt;blogs = Blog.objects.annotate(Count(&#39;commnet&#39;))&lt;br /&gt;&lt;br /&gt;这回取出博客列表的同时，也能取到相应的回复条数了。template中怎么取值：&lt;br /&gt;{%for blog in blogs%}&lt;br /&gt;{{blog.comment__count}}&lt;br /&gt;{%endfor%}&lt;br /&gt;&lt;br /&gt;你也可以该字段给个别名：&lt;br /&gt;blogs = Blog.objects.annotate(comment_count=Count(&#39;commnet&#39;))&lt;br /&gt;&lt;br /&gt;这个函数，如果结合filter exclude get,出来的效果你懂的！&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2 values&lt;/strong&gt;&lt;br /&gt;values是返回QuerySet吗？严格说是ValuesQuerySet，是QuerySet的子集。看代码：&lt;br /&gt;Blog.objects.values()&lt;br /&gt;&lt;br /&gt;得出的是：&lt;br /&gt;[{&#39;id&#39;: 1, &#39;name&#39;: &#39;Beatles Blog&#39;, &#39;tagline&#39;: &#39;All the latest Beatles news.&#39;},...]&lt;br /&gt;没有指定参数，默认会返回全部的字段字典列表。指定参数：&lt;br /&gt;Blog.objects.values(&#39;id&#39;, &#39;name&#39;)&lt;br /&gt;得出：&lt;br /&gt;[{&#39;id&#39;: 1, &#39;name&#39;: &#39;Beatles Blog&#39;}]&lt;br /&gt;在template里使用它 只需把它当成一个iterable，循环取值即可，每条记录就是一个字典，记录的属性就是实体的属性字段。&lt;br /&gt;值得注意的是它返回的是ValuesQuerySet，而不是QuerySet，如果你使用了values()后，再使用QuerySet的函数如filter，出现什么问题，你可以试试。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3 dates&lt;/strong&gt;&lt;br /&gt;顾名思义，dates是和时间有关的函数，用法：&lt;br /&gt;Entry.objects.dates(&#39;pub_date&#39;, &#39;year&#39;)&lt;br /&gt;&lt;p&gt;结果：&lt;/p&gt;&lt;p&gt;[datetime.datetime(2005, 1, 1)，...]&lt;/p&gt;得出的是时间datetime列表，和values函数相似，得出的是QuerySet的子集：DateQuerySet；这个函数不好理解，如上面的Entry.objects.dates(&#39;pub_date&#39;, &#39;year&#39;)，是什么意思呢？&lt;br /&gt;其实就是取出所有博客的时间列表，参数‘year’，出来的时间列表 是以年份为依据，不会有重复年份,月份和日期默认是1；比如众多blog中，有几万条，发表时间当然不止同一年的，该语句出来 ：&lt;br /&gt;[datetime.datetime(2005, 1, 1)，datetime.datetime(2006, 1, 1)，datetime.datetime(2007, 1, 1)，datetime.datetime(2008, 1, 1)，...]&lt;br /&gt;嗯，时间列表，在template用，你应该知道了！&lt;br /&gt;&lt;br /&gt;参数 field kind order，形如：&lt;br /&gt;Entry.objects.dates(&#39;pub_date&#39;, &#39;day&#39;, order=&#39;DESC&#39;)&lt;br /&gt;field就是实体的一个时间字段，kid就是 year month day，order就是排序 desc asc，好理解吧？&lt;br /&gt;&lt;br /&gt;如果你还有疑问：我们想取出博客的所有月份，怎么写？ 呃，试试这样：&lt;br /&gt;&lt;p&gt;Blog.objects.dates(&#39;pub_date&#39;, &#39;month&#39;, order=&#39;DESC&#39;)...&lt;/p&gt;&lt;p&gt;结果：&lt;/p&gt;&lt;p&gt;[datetime.datetime(2005, 1, 1)，datetime.datetime(2005, 2, 1)，... ，datetime.datetime(2006, 4, 1)，...，datetime.datetime(2008, 6, 1)，...]&lt;br /&gt;&lt;/p&gt;但如果想取所有日期列表呢？唉，有必要吗？dates用途，你平时见到的归档 都是按照年份或者月份归档的，如果按照日期归档，该网站的文摘更新速度不是一般的快哦！还是有办法的：&lt;br /&gt;Blog.objects.dates(&#39;pub_date&#39;, &#39;day&#39;, order=&#39;DESC&#39;)...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4 defer&lt;/strong&gt;&lt;br /&gt;defer是个好函数，有时候一个实体有过多的字段，取实体或者实体列表的时候，占用了多大的内存，而你却不需要取出全部的字段，比如博客的正文内容，你不需要立即检索数据库，这时defer就是你需要的东西。defer函数与前面讲的values有区别的，前者返回的是ValuesQuerySet，而defer返回的是QuerySet对象，这意味着，使用了defer后，你还可以结合QuerySet其他的函数，让整个语句结合更多的条件；Django的ORM除了做得OO，还很注重性能的。&lt;br /&gt;如果取博客的文章列表，让容量很大的正文和副标题在数据库层不进行检索，看看代码：&lt;br /&gt;Blog.objects.defer(&amp;quot;content&amp;quot;, &amp;quot;subtitle&amp;quot;)&lt;br /&gt;&lt;br /&gt;defer的用法还比较多，比如：&lt;br /&gt;my_queryset=Blog.objects.select_related().defer(&amp;quot;commnet__content&amp;quot;, &amp;quot;commnet__pic&amp;quot;)&lt;br /&gt;&lt;br /&gt;以上的语句说明，获取博客表和回复表，他们两表是使用了内连接，获取的时候，让回复表不检索回复内容和图片。select_related之前记得有说过，是一次性表关联。&lt;br /&gt;&lt;br /&gt;如果你想再原来语句获取到的实体列表上取消某些字段的延时，可以通过这样的用法取消延时，让数据库立即检索全部字段：&lt;br /&gt;my_queryset.defer(None)&lt;br /&gt;&lt;br /&gt;还有很多的defer组合用法，需要自己去慢慢体会了。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5 only&lt;/strong&gt;&lt;br /&gt;only很多程度上和defer是同一类的东西，可以理解为defer的相反函数吧。比如Person实体里有三个字段：name age birthday，下面这两条语句是等价的：&lt;br /&gt;&lt;br /&gt;Person.objects.defer(&amp;quot;age&amp;quot;, &amp;quot;biography&amp;quot;)&lt;br /&gt;Person.objects.only(&amp;quot;name&amp;quot;)&lt;br /&gt;&lt;br /&gt;好了就写到这里了，周末愉快.</description>
   </item>
   
   <item>
     <title>C#的另类图片缩放</title>
     <link>/blog/panjj/other/2011/04/08/513</link>
     <description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;导读：在指定大小的框框内，对图片等比例缩放，你有没有碰到？有的话以下代码可能有些用。&lt;/p&gt;&lt;strong&gt;问题场景&lt;/strong&gt;&lt;p&gt;最近碰到一个客户提出一个需求：图片缩放功能，上传的图片尺寸可以是任何比例，而且有横向也有纵向的，在规定的尺寸范围内缩放，缩放后的图片不能有剪切的，缩放后图片可视比例和原图片比例相等。如果明白的话，很明显这种缩放，横向或纵向可能会留空白的边，于是把这种情况跟客户说了，客户也很明白，说可以接受。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;问题分析得出思路&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;平时接触的图片缩放或剪切，都不是此类的，先在google上搜索了一下，有需求，但没有看到几个解决方案，这么来真的要自己写一些程序了，缕缕思路：首先要计算出缩放后图片的尺寸，该尺寸的长宽都在指定尺寸范围内，也就是，如果上传的图片和指定尺寸比例不等的话，不是纵向就是横向会留下空边，但不会两向都会留，因为上传的图片长宽都比指定尺寸大的话，需要把图片缩小，直至长或宽和指定的长或宽相等，如果上传的图片长宽都比指定的长宽小的话，也需要把图片放大，直至长或宽和指定的长或宽相等。开始写代码了，先把这个思想转化成代码：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;csharp&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// 给定一个矩形（长方形 正方形）剪切的范围 传入一张图片的原始尺寸 
        /// 得到一个在该矩形范围内的最佳尺寸(原图的比例不会变)
        /// add 2goo 2011-4-8
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;specifySize&amp;quot;&amp;gt;指定尺寸&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;originalSize&amp;quot;&amp;gt;原始尺寸&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;返回（原图片等比例）最佳尺寸&amp;lt;/returns&amp;gt;
        private static Size ResizeSite(Size specifySize, Size originalSize)
        {
            Size finaSize = new Size();
            float specifyScale = (float)specifySize.Width / (float)specifySize.Height;
            float originalScale = (float)originalSize.Width / (float)originalSize.Height;
            if (specifySize.Width &amp;gt;= originalSize.Width)
            {
                finaSize.Height = specifySize.Height;
                finaSize.Width = (int)(finaSize.Height * originalScale);
                if (finaSize.Width &amp;gt; specifySize.Width)
                {
                    finaSize.Width = specifySize.Width;
                    finaSize.Height = (int)(finaSize.Width / originalScale);
                }
            }
            else
            {
                finaSize.Width = specifySize.Width;
                finaSize.Height = (int)(finaSize.Width / originalScale);
                if (finaSize.Height &amp;gt; specifySize.Height)
                {
                    finaSize.Height = specifySize.Height;
                    finaSize.Width = (int)(finaSize.Height * originalScale);
                }
            }
            return finaSize;
        }&lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;后续思路&lt;/strong&gt;&lt;p&gt;只要结合指定尺寸把上传的图片的长宽计算出来，那剩下的工作就是图片的缩放处理了，写代码之前，想法大概思路是这样的：先结合刚才的代码，把图片的长宽取出来，用C#的Graphics DrawImage把图片等比列缩放成计算出来的尺寸，然后再画个新图，尺寸和指向尺寸一样，把刚才的缩放好的图片粘贴找这张新图上即可，当然这个过程，还要计算空边（有两边）的尺寸，好了写好代码如下：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;csharp&quot;&gt;        /// &amp;lt;summary&amp;gt;
        /// 缩放图片 按比例 如果指定的尺寸和原图片尺寸比例不等，会留空边
        /// 2goo add 2011-04-06
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;postedFile&amp;quot;&amp;gt;原图HttpPostedFile对象&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;savePath&amp;quot;&amp;gt;保存图片的绝对路径 包括图片名&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;newWidth&amp;quot;&amp;gt;指定宽度&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;newHeight&amp;quot;&amp;gt;指定高度&amp;lt;/param&amp;gt;
        public static void ResizeImage(System.Web.HttpPostedFile postedFile, 
            string savePath, int newWidth, int newHeight)
        {
            //创建目录
            string dir = Path.GetDirectoryName(savePath);
            if (!Directory.Exists(dir))
                Directory.CreateDirectory(dir);

            //原始图片（获取原始图片创建对象，并使用流中嵌入的颜色管理信息）
            System.Drawing.Image originalImage = 
                System.Drawing.Image.FromStream(postedFile.InputStream, true);

            int ow = originalImage.Width;//原始宽度
            int oh = originalImage.Height;//原始高度

            Size toSize = ResizeSite(new Size(newWidth, newHeight), new Size(ow,oh));
            int towidth = toSize.Width;//原图片缩放后的宽度
            int toheight = toSize.Height;//原图片缩放后的高度

            int x = 0;
            int y = 0;

            x = (newWidth - towidth) / 2;
            y = (newHeight - toheight) / 2;

            //新建一个bmp图片
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
            //新建一个画板
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
            //设置高质量插值法
            g.InterpolationMode =
                System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //清空画布并以透明背景色填充
            g.Clear(System.Drawing.Color.Transparent);
            //在指定位置并且按指定大小绘制原图片的指定部分
            g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
            new System.Drawing.Rectangle(0, 0, ow, oh),
            System.Drawing.GraphicsUnit.Pixel);
            //--------------------------------------------------------------------------------

            //新建一个bmp图片2
            System.Drawing.Image bitmap2 = new System.Drawing.Bitmap(newWidth, newHeight);
            //新建一个画板2
            System.Drawing.Graphics g2 = System.Drawing.Graphics.FromImage(bitmap2);
            //设置高质量插值法
            g2.InterpolationMode = 
                System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            //设置高质量,低速度呈现平滑程度
            g2.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //清空画布并以透明背景色填充
            g2.Clear(System.Drawing.Color.White);
            g2.DrawImageUnscaled(bitmap,new Point(x,y));

            try
            {
                //以jpg格式保存缩略图
                bitmap2.Save(savePath, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                originalImage.Dispose();
                bitmap.Dispose();
                bitmap2.Dispose();
                g2.Dispose();
                g.Dispose();
            }
        }&lt;/pre&gt;上面方法介绍：ResizeImage其实就是图片缩放，然后保存到磁盘里的整个过程。方法需要HttpPostedFile（Request.Files[&amp;quot;controlName&amp;quot;]） 图片保存路径（绝对路径和包含图片的名字），保存宽度和高度。四个参数即可。&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其中有到的类库如下：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;csharp&quot;&gt;using System;
using System.Drawing;
using System.IO;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;如果有问题，回复我...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>Rails在Windows下开发并不友好</title>
     <link>/blog/panjj/Rails/2011/04/03/512</link>
     <description>&lt;div&gt;
	自己公司的硬件都是限制在windows xp下，这个阶段换成windows 7也是经过一层层的手续申请，安装linux？由于文化和商业原因，就不想提了；所以前提条件就定格在古老的windows xp上了。想在windows xp下用rails3开发，首先配置开发环境就成问题，说说遇到的问题。&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	ruby 1.9 windows版的已经正式发布了，一路安装下来，很顺利，自带的gem版本也足够支持rails3了；可到了安装rails3，那就有点折腾了：&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	gem install rails 指令下xp是无法完成安装的，过程出现缺少模块，安装了缺少的模块，再继续，又提示缺少另一个模块，而且每个模块顺序还需按规定来，反正Rails包含的所有必须的模块都得一一按照顺序安装下去，rails包含一二十个必选和备选模块，你得一一了解，不然安装到最后，缺了什么你都蒙在鼓里。到了正式的开发的时候，遇到问题，折腾够了，你才发现原来缺了什么!&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	rails3 支持多个数据库，但当你想用posgresql或者oracle mssql...在rails里算不上主流的数据库，安装数据库的引擎驱动是必须的，这又是一个折腾；这些第三方类库，多数支持的不够及时，没有出来windows版之前，你只能研究在windows下编译安装了，这不是windows环境下擅长的。&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	rails3 图片处理这一块，在windows下也是个问题，imagemagick和rmagick是比较常用的搭配，imagemagick是C类语言开发的，历史悠久，安装算是问题不大，而rmagick和上面提到的数据库引擎驱动一样，安装方法不是新手能一下子领悟的。&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	这些都是自己在windows下rails开发所遇到的问题，虽然这些都是暂时的，但对于初涉rails领域的人不能不算是脚拌石。如果在Linux osx下这些都是很简单的事情了。&lt;/div&gt;
</description>
   </item>
   
   <item>
     <title>Python图片处理模块</title>
     <link>/blog/panjj/other/2011/03/29/511</link>
     <description>&lt;p&gt;平时用Python做web开发，上传图片是难免的，但直接拿PIL的函数来处理，总感觉有点繁琐，能不能封装些功能函数，让web上传处理图片更简便些。看了壑塥峈的《使用PIL调整图片分辨率》，得到了启发，他写的模块，主要是方便本地图片的批量处理，所以在他原来的基础上修改了一下，让它在开发web中使用。&lt;/p&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;在Django中，很容易得到file控件的值，比如file = request.FILES.get(&amp;quot;photo&amp;quot;,None),我就从这里出发，开始修改，把类修改成接受file参数和路径参数path，然后通过传入图片尺寸的方法，处理并保存图片，最后返回上传图片名字列表list，不多说，看看Django的views用法便知：&lt;/div&gt;&lt;div&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;from django.conf import settings
frommyproject.common.graphicsimportGraphics
 
defindex(request,template_name=&#39;apptest/picprocessor.html&#39;):
    template_var=dict()
    ifrequest.method==&#39;POST&#39;:
        file=request.FILES.get(&amp;quot;photo&amp;quot;,None)
        iffile:
            path=os.path.join(settings.MEDIA_ROOT,&#39;apptest&#39;)
            resizer=Graphics(file,path)
            template_var[&amp;quot;filename&amp;quot;]=resizer.run_cut((150,100),(300,200),(50,50),)
            
returnrender_to_response(template_name,template_var,context_instance=RequestContext(request))&lt;/pre&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;使用该模块，你仅仅需要传入上传地址（绝对地址）和HttpRequest.FILES，初始化一下里面的Graphics类，然后使用类的方法，指定需要的尺寸tuple即可返回上传图片的名字。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Graphics类里有几个方法 是外部调用的，分别是run_cut，run_zoom_w，run_zoom_h和run_thumbnail。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;run_cut:是根据你提供的尺寸，对原图片进行剪切，原图片比例和你指定的尺寸比例不相等时，程序会以原图中心为准放大缩小剪切成你需要的尺寸，图片不会拉伸。需要传入一个或多个尺寸tuple，如(150,100),(300,200),(50,50)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;run_zoom_w:是根据你提供的宽度，等比列缩放。方法需要传入一个或多个宽度tuple，如 150,100,200,300&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;run_zoom_h:是根据你提供的高度，等比列缩放。方法需要传入一个或多个高度tuple，如 150,100,200,300&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;run_thumbnail:是传统的缩略图方法，需要传入一个或多个尺寸tuple，如(150,100),(300,200),(50,50)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;这三个方法，能把原图处理成多种尺寸规格，也就是说能同时处理并上传成 多张不同尺寸的图片。图片处理的时候，全部采用Image.ANTIALIAS抗锯齿的过滤属性，保存的图片质量暂时定在100，这些都是为了保证剪切图片的时候，最大降低失真度，这样出来的图片体积就稍微大些了。图片的名字组合方式：uuid+&amp;quot;_&amp;quot;+w+&amp;quot;_&amp;quot;+h.jpg，如：ae5c011e-5e98-11e0-96e6-001a6bd081a2-600-400.jpg&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;具体的实现方法：&lt;/div&gt;&lt;div&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;#coding:utf-8
&amp;quot;&amp;quot;&amp;quot;图片上传后端处理&amp;quot;&amp;quot;&amp;quot;
__modify__ = &#39;2goo.info&#39;
__email__ =&#39;nmgkjdxjsj@gmail.com&#39;
VERSION = &amp;quot;Graphics v0.1 build 2011-03-27&amp;quot;

import os,Image,ImageFile,uuid

class Graphics:    
    def __init__(self,uploadedfile,targetpath):
        &#39;&#39;&#39;初始化参数&#39;&#39;&#39;
        self.uploadedfile=uploadedfile
        self.targetpath = targetpath

    def check_folder(self):
        &#39;&#39;&#39;检查目标文件夹是否存在，不存在则创建之&#39;&#39;&#39;
        if not os.path.isdir(self.targetpath):
            os.mkdir(self.targetpath)
        return self.targetpath

    def pic_info(self, img):
        &#39;&#39;&#39;获取照片的尺寸和确定图片横竖版&#39;&#39;&#39;
        w, h = img.size
        if  w&amp;gt;h:
            return w, h, 0  #横版照片
        else:
            return w, h, 1  #竖版照片

    def comp_ratio(self, x, y):
        &#39;&#39;&#39;计算比例.&#39;&#39;&#39;
        x = float(x)
        y = float(y)
        return float(x/y)

    def pic_cut(self, image, p_w, p_h):
        &#39;&#39;&#39;根据设定的尺寸，对指定照片进行像素调整
        图形不会变形 如果指定尺寸比例和原图比例不
        相等时，最大范围剪切&#39;&#39;&#39;
        #获取指定照片的规格，一般是1024,768       
        img = image   
        w, h, isVertical = self.pic_info(img)
        #判断照片横竖，为竖版的话对调w,h
        if isVertical:
            p_w, p_h = p_h, p_w

        #如果照片调整比例合适，直接输出
        if self.comp_ratio(p_h, p_w) == self.comp_ratio(h, w):
            target = img.resize((int(p_w), int(p_h)),Image.ANTIALIAS)#hack:高保真必备！                            
            # ANTIALIAS: a high-quality downsampling filter
            # BILINEAR: linear interpolation in a 2x2 environment
            # BICUBIC: cubic spline interpolation in a 4x4 environment
            return target

        #比例不合适就需要对照片进行计算，保证输出照片的正中位置
        #算法灵感来源于ColorStrom
        if self.comp_ratio(p_h, p_w) &amp;gt; self.comp_ratio(h, w):
            #偏高照片的处理
            #以高为基准先调整照片大小
            #根据新高按比例设置新宽
            p_w_n = p_h * self.comp_ratio(w,h) 
            temp_img = img.resize((int(p_w_n), int(p_h)),Image.ANTIALIAS)

            #获取中间选定大小区域
            c = (p_w_n - p_w)/2 #边条大小
            box = (c, 0, c+p_w, p_h) #选定容器
            #换成crop需要的int形参数
            box = tuple(map(int, box)) 
            target = temp_img.crop(box)

            return target

        else:
            #偏宽的照片
            #以宽为基准先调整照片大小
            p_h_n = p_w * self.comp_ratio(h, w)  # 根据新宽按比例设置新高
            temp_img = img.resize((int(p_w), int(p_h_n)),Image.ANTIALIAS)

            #获取新图像
            c = (p_h_n - p_h)/2
            box = (0, c, p_w, c+p_h)
            box = tuple(map(int, box))
            target = temp_img.crop(box)

            return target
        
    def pic_zoom_w(self, image, p_w):
        &#39;&#39;&#39;根据设定的宽度，对指定照片进行像素缩放 图形不会变形
        图形比例不变 高度根据指定的宽度等比列放大缩小&#39;&#39;&#39;
        #获取指定照片的规格，一般是1024,768       
        img = image   
        w, h, isVertical = self.pic_info(img)
        p_h=p_w * self.comp_ratio(h, w)
        temp_img = img.resize((int(p_w), int(p_h)),Image.ANTIALIAS)
        
        box = (0, 0, p_w, p_h)
        box = tuple(map(int, box))
        target = temp_img.crop(box)

        return target
    
    def pic_zoom_h(self, image, p_h):
        &#39;&#39;&#39;根据设定的高度，对指定照片进行像素缩放 图形不会变形
        图形比例不变 宽度根据指定的高度等比列放大缩小&#39;&#39;&#39;
        #获取指定照片的规格，一般是1024,768       
        img = image   
        w, h, isVertical = self.pic_info(img)
        p_w=p_h * self.comp_ratio(w, h)
        temp_img = img.resize((int(p_w), int(p_h)),Image.ANTIALIAS)
        
        box = (0, 0, p_w, p_h)
        box = tuple(map(int, box))
        target = temp_img.crop(box)

        return target   

    #外部调用方法
    def run_cut(self,quality=80,*args):
        &#39;&#39;&#39;运行调整照片尺寸进程 接纳规格列表，每个规格为一个tuple&#39;&#39;&#39;
        parser = ImageFile.Parser()  
        for chunk in self.uploadedfile.chunks():  
            parser.feed(chunk)  
        img = parser.close()
        list=[]
        uuid_str=str(uuid.uuid1())
        try:
            for std in args:
                w, h = std[0], std[1]  #获取照片的规格               
                filename=uuid_str+&amp;quot;-&amp;quot;+str(w)+&amp;quot;-&amp;quot;+str(h)+&#39;.jpg&#39;      
                opfile = os.path.join(self.check_folder(),filename)
                
                tempimg = self.pic_cut(img,int(w), int(h))
                tempimg.save(opfile, &#39;jpeg&#39;,quality=quality)
                list.append(filename)
            return list
        except:
            pass       
    
    def run_zoom_w(self,*args):
        &#39;&#39;&#39;运行图形缩放 接纳图形宽度tuple列表，每个宽度为一个整数&#39;&#39;&#39;
        parser = ImageFile.Parser()  
        for chunk in self.uploadedfile.chunks():  
            parser.feed(chunk)  
        img = parser.close()
        list=[]
        uuid_str=str(uuid.uuid1())
        w, h, isVertical = self.pic_info(img)
        try:
            for woh in args:#获取照片的宽度              
                th=int(float(woh) * self.comp_ratio(h,w))
                #生成唯一的图片名字     
                filename=uuid_str+&amp;quot;-&amp;quot;+str(woh)+&amp;quot;-&amp;quot;+str(th)+&#39;.jpg&#39;
                #图片路径+图片名字     
                opfile = os.path.join(self.check_folder(),filename)           
                tempimg=self.pic_zoom_w(img,int(woh))                
                tempimg.save(opfile, &#39;jpeg&#39;,quality=80)
                list.append(filename)
            return list
        except:
            pass
        
    def run_zoom_h(self,*args):
        &#39;&#39;&#39;运行图形缩放 接纳图形高度tuple列表，每个高度为一个整数&#39;&#39;&#39;
        parser = ImageFile.Parser()  
        for chunk in self.uploadedfile.chunks():  
            parser.feed(chunk)  
        img = parser.close()
        list=[]
        uuid_str=str(uuid.uuid1())
        w, h, isVertical = self.pic_info(img)
        try:
            for woh in args:#获取照片的高度                
                tw=int(float(woh) * self.comp_ratio(w,h))
                filename=uuid_str+&amp;quot;-&amp;quot;+str(tw)+&amp;quot;-&amp;quot;+str(woh)+&#39;.jpg&#39;   
                opfile = os.path.join(self.check_folder(),filename)                    
                tempimg=self.pic_zoom_h(img,int(woh))
                tempimg.save(opfile, &#39;jpeg&#39;,quality=80)
                list.append(filename)
            return list
        except:
            pass
        
    def run_thumbnail(self,*args):
        &#39;&#39;&#39;传统的生成缩略图 接纳规格列表，每个规格为一个tuple&#39;&#39;&#39;
        parser = ImageFile.Parser()  
        for chunk in self.uploadedfile.chunks():  
            parser.feed(chunk)  
        img = parser.close()
        list=[]
        uuid_str=str(uuid.uuid1())
        try:
            for std in args:
                #获取照片的规格            
                w, h = std[0], std[1]
                #生成唯一的图片名字         
                filename=uuid_str+&amp;quot;-&amp;quot;+str(w)+&amp;quot;-&amp;quot;+str(h)+&#39;.jpg&#39;
                #图片路径+图片名字
                opfile = os.path.join(self.check_folder(),filename)
                tempimg=img.copy()
                tempimg.thumbnail((int(w), int(h)),Image.ANTIALIAS)
                tempimg.save(opfile, &#39;jpeg&#39;,quality=80)
                list.append(filename)
            return list
        except:
            pass&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;有好的建议，别忘了告诉我。该模块，会慢慢完善。&lt;/div&gt;&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>因此该方法无法转换为存储表达式</title>
     <link>/blog/baoyalv/other/2011/03/29/510</link>
     <description>&lt;p&gt;
	项目中用到了C# 的Linq,今天碰到一个问题，提示这样：&lt;/p&gt;
&lt;p&gt;
	LINQ to Entities 不识别方法&amp;ldquo;System.DateTime Parse(System.String)&amp;rdquo;，因此该方法无法转换为存储表达式。&lt;/p&gt;
&lt;p&gt;
	代码大概是这样的：&lt;/p&gt;
&lt;p&gt;
	result = result.Where(a =&amp;gt; a.h.CreationDate &amp;gt;= DateTime.Parse(dtStart));&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	也就是说我在结果集中过滤 某个时间段的记录，参数dtStart是字符的类型（框架的需要），所以表达式中引用了一个静态方法DateTime.Parse,把时间字符转成时间类型了。&lt;/p&gt;
&lt;p&gt;
	查了下MSDN文档，大量的文摘，耐不住性子了，直接观察了下提示错误，把&amp;nbsp;DateTime.Parse直接挪出来了，改成：&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;sdt = DateTime.Parse(dtStart);&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;result = result.Where(a =&amp;gt; a.h.CreationDate &amp;gt;= sdt);&lt;/p&gt;
&lt;p&gt;
	把时间转换动作挪出来了，Linq终于能正常执行了！我想在linq表达式中，是不是不能使用一些静态方法呢？&lt;/p&gt;
</description>
   </item>
   
   <item>
     <title>Django Ajax POST请求失败解决办法</title>
     <link>/blog/baoyalv/Django/2011/03/12/509</link>
     <description>&lt;p&gt;Django到了1.2.5版本以上，Ajax POST请求的使用发生了一些改变，我们还记得前些版本1.2，Django加入了CSRF机制，大大增强了网络请求的安全性，正是因为这点，现在的Django对页面任何POST请求的数据进行跨域攻击保护。当你升级到1.2.5或更高版本后，你会发现以前1.2.4版本的Ajax&amp;nbsp;POST脚本方法都不能用或者出错了，Django官网上提供了一个解决办法，加个JQuery ajaxSend事件，让你以前的Ajax Post脚本能重新正常使用起来。请看代码：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;javascript&quot;&gt;$(document).ajaxSend(function(event, xhr, settings) {
    function getCookie(name) {
        var cookieValue = null;
        if (document.cookie &amp;amp;&amp;amp; document.cookie != &#39;&#39;) {
            var cookies = document.cookie.split(&#39;;&#39;);
            for (var i = 0; i &amp;lt; cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + &#39;=&#39;)) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
    function sameOrigin(url) {
        // url could be relative or scheme relative or absolute
        var host = document.location.host; // host + port
        var protocol = document.location.protocol;
        var sr_origin = &#39;//&#39; + host;
        var origin = protocol + sr_origin;
        // Allow absolute or scheme relative URLs to same origin
        return (url == origin || url.slice(0, origin.length + 1) == origin + &#39;/&#39;) ||
            (url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin + &#39;/&#39;) ||
            // or any other URL that isn&#39;t scheme relative or absolute i.e relative.
            !(/^(\/\/|http:|https:).*/.test(url));
    }
    function safeMethod(method) {
        return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
    }

    if (!safeMethod(settings.type) &amp;amp;&amp;amp; sameOrigin(settings.url)) {
        xhr.setRequestHeader(&amp;quot;X-CSRFToken&amp;quot;, getCookie(&#39;csrftoken&#39;));
    }
});&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;把以上的代码 放在你使用Ajax POST 请求的页面上，而JQuery版本要1.5.1以上。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;参考文档：&lt;/div&gt;&lt;div&gt;http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#csrf-ajax&lt;/div&gt;&lt;div&gt;http://docs.djangoproject.com/en/dev/releases/1.3/#csrf-exception-for-ajax-requests&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>我为什么热衷于PostgreSQL数据库</title>
     <link>/blog/baoyalv/other/2011/03/06/508</link>
     <description>&lt;p&gt;说这个问题的时候，我首先申明我并不是想挑起数据库谁优谁劣的无谓争吵；而是想说说，像我这样:平时工作大多使用MySQL MSSQL，而有独立博客的人，MySQL和PostgerSQL哪个是我比较喜欢的类型。&lt;/p&gt;&lt;p&gt;MySQL和PostgerSQL两个数据库都是当前比较流行的开源数据库，尽管他们开源的标准不大一样，MySQL已经趋向于收费的状况，这说明它的市场占有率大，产品做的精良，背后有强大的靠山技术支持；而PostgerSQL也一直在平稳发展，在众多的社会开源开发者的努力下，版本已经到了9.0以上。一家强大公司内部研发和众多爱好者贡献代码支持，我更喜欢后者，我喜欢更纯粹的自由和共享。&lt;/p&gt;&lt;p&gt;数据库很重要，我也很注重数据的导出导入这些备份功能，这方面MySQL做的很好，因为它的文档相当齐全，第三方的工具也很多，你有多种方式去做那方面的工作；PostgerSQL也有同样的功能，但本人的知识有限，不太会用Google，查到的文档都是几年前的东西，特别是中文方面的文档，很老的文档即使找到了，也并不是自己想要的。幸好有耐心看看官调的E文文档；目前为止只知道一两个备份的方法！但是如果自己有权限管理PostgerSQL服务器，一两个办法就已经足够了。&lt;/p&gt;&lt;p&gt;MySQL分为好几种版本，犹如WINDOWS一样，分什么旗舰版，专业版，家庭版 服务器版...到了官网下载页面，天花乱坠的，不知道下载哪个。&amp;nbsp;PostgerSQL从某种程度来说，就一个版本。所有的功能都包囊在这个版本里，喜欢软件不分贵贱的。&lt;/p&gt;&lt;p&gt;性能。额... 几年前，都说MySQL整体上会更快，现在呢？我也不知道，没有测试过。睁着眼睛说瞎话，像我这样在小井里的，感觉MySQL和PostgerSQL性能上没有什么明显的差别，我手头的都是小项目，做个商务网啦，做个博客啦 等等，并不知道他们的速度谁更快些？但有一次，自己的项目放在资源有限的服务器里，让我发现PostgerSQL让我等的时间，减少了，试了几次，结果还是一样。查询大量的记录，表现居然更明显；难道我没有优化MySQL，而产生的错觉？我也没有优化PostgerSQL呀！那过后，开始注意到PostgerSQL了。&lt;/p&gt;&lt;p&gt;我喜欢物尽所用，花点钱买个内存才512M的虚拟的VPS，安装上python+nginx+PostgerSQL，让网站跑起来，包括Debian系统在内，所有内存占用不到一半；而改用MySQL，优化技巧有限，我到现在还没有办法做到PostgerSQL占用资源少的程度，即使我牺牲了一些有用的引擎，还是有点失望。PostgerSQL占用的内存少，稳定性会不会下降呢，使用了一年半载，你才能体会得到！PostgerSQL还是几年前他们说的那样，相当稳定啊...&lt;/p&gt;&lt;p&gt;以下是本人是实际使用过程中，发现PostgerSQL的可爱之处...&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
   </item>
   
   <item>
     <title>中国省市数据库表-PostgreSQL版</title>
     <link>/blog/baoyalv/other/2011/03/06/507</link>
     <description>&lt;div&gt;昨晚发现了&lt;a href=&quot;http://2goo.info/blog/baoyalv/other/2011/03/06/506&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; color: rgb(0, 128, 128); text-decoration: underline; &quot;&gt;中国省市数据库表-MYSQL版&lt;/a&gt;,那时已经凌晨3点左右了，实在太困了，没有来得及转换成PostgreSql版本的！现在趁着刚起来，改了些sql，让它能在PostgreSql上执行，创建那两个省份和城市表。用法：首先需要在PostgreSql上创建一个数据库（可以随意命名），然后把以下的sql语句执行一遍，即可完成.&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	-- Table: province&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	DROP TABLE province;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	CREATE TABLE province&lt;/div&gt;
&lt;div&gt;
	(&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;id integer NOT NULL,&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;&amp;quot;name&amp;quot; character varying(50),&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;CONSTRAINT province_id PRIMARY KEY (id)&lt;/div&gt;
&lt;div&gt;
	)&lt;/div&gt;
&lt;div&gt;
	WITH (&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;OIDS=FALSE&lt;/div&gt;
&lt;div&gt;
	);&lt;/div&gt;
&lt;div&gt;
	ALTER TABLE province OWNER TO postgres;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	-- ----------------------------&lt;/div&gt;
&lt;div&gt;
	-- Records of province&lt;/div&gt;
&lt;div&gt;
	-- ----------------------------&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;1&amp;#39;, &amp;#39;北京市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;2&amp;#39;, &amp;#39;天津市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;3&amp;#39;, &amp;#39;上海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;4&amp;#39;, &amp;#39;重庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;5&amp;#39;, &amp;#39;河北省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;6&amp;#39;, &amp;#39;山西省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;7&amp;#39;, &amp;#39;台湾省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;8&amp;#39;, &amp;#39;辽宁省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;9&amp;#39;, &amp;#39;吉林省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;10&amp;#39;, &amp;#39;黑龙江省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;11&amp;#39;, &amp;#39;江苏省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;12&amp;#39;, &amp;#39;浙江省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;13&amp;#39;, &amp;#39;安徽省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;14&amp;#39;, &amp;#39;福建省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;15&amp;#39;, &amp;#39;江西省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;16&amp;#39;, &amp;#39;山东省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;17&amp;#39;, &amp;#39;河南省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;18&amp;#39;, &amp;#39;湖北省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;19&amp;#39;, &amp;#39;湖南省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;20&amp;#39;, &amp;#39;广东省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;21&amp;#39;, &amp;#39;甘肃省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;22&amp;#39;, &amp;#39;四川省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;23&amp;#39;, &amp;#39;贵州省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;24&amp;#39;, &amp;#39;海南省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;25&amp;#39;, &amp;#39;云南省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;26&amp;#39;, &amp;#39;青海省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;27&amp;#39;, &amp;#39;陕西省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;28&amp;#39;, &amp;#39;广西壮族自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;29&amp;#39;, &amp;#39;西藏自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;30&amp;#39;, &amp;#39;宁夏回族自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;31&amp;#39;, &amp;#39;新疆维吾尔自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;32&amp;#39;, &amp;#39;内蒙古自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;33&amp;#39;, &amp;#39;澳门特别行政区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;province &amp;nbsp;VALUES (&amp;#39;34&amp;#39;, &amp;#39;香港特别行政区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	-- Table: city&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	DROP TABLE city;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	CREATE TABLE city&lt;/div&gt;
&lt;div&gt;
	(&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;id serial NOT NULL,&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;city_index integer NOT NULL,&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;province_id integer NOT NULL,&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;&amp;quot;name&amp;quot; character varying(100) DEFAULT &amp;#39;&amp;#39;::character varying,&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;CONSTRAINT city_id PRIMARY KEY (id)&lt;/div&gt;
&lt;div&gt;
	)&lt;/div&gt;
&lt;div&gt;
	WITH (&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&amp;nbsp;OIDS=FALSE&lt;/div&gt;
&lt;div&gt;
	);&lt;/div&gt;
&lt;div&gt;
	ALTER TABLE city OWNER TO postgres;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;1&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;北京市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;2&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;天津市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;3&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;上海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;4&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;重庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;5&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;石家庄市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;6&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;唐山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;7&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;秦皇岛市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;8&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;邯郸市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;9&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;邢台市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;10&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;保定市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;11&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;张家口市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;12&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;承德市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;13&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;沧州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;14&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;廊坊市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;15&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;衡水市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;16&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;太原市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;17&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;大同市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;18&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;阳泉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;19&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;长治市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;20&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;晋城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;21&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;朔州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;22&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;晋中市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;23&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;运城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;24&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;忻州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;25&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;临汾市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;26&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;吕梁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;27&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台北市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;28&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;高雄市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;29&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;基隆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;30&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台中市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;31&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;32&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;新竹市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;33&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;嘉义市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;34&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台北县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;35&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;宜兰县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;36&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;桃园县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;37&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;新竹县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;38&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;苗栗县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;39&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台中县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;40&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;彰化县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;41&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;南投县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;42&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;云林县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;43&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;嘉义县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;44&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台南县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;45&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;高雄县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;46&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;屏东县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;47&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;澎湖县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;48&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台东县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;49&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;花莲县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;50&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;沈阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;51&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;大连市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;52&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;鞍山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;53&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;抚顺市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;54&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;本溪市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;55&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;丹东市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;56&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;锦州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;57&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;营口市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;58&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;阜新市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;59&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;辽阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;60&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;盘锦市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;61&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;铁岭市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;62&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;朝阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;63&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;葫芦岛市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;64&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;长春市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;65&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;吉林市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;66&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;四平市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;67&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;辽源市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;68&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;通化市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;69&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;白山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;70&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;松原市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;71&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;白城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;72&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;延边朝鲜族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;73&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;哈尔滨市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;74&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;齐齐哈尔市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;75&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;鹤岗市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;76&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;双鸭山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;77&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;鸡西市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;78&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;大庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;79&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;伊春市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;80&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;牡丹江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;81&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;佳木斯市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;82&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;七台河市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;83&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;黑河市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;84&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;绥化市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;85&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;大兴安岭地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;86&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;南京市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;87&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;无锡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;88&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;徐州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;89&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;常州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;90&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;苏州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;91&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;南通市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;92&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;连云港市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;93&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;淮安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;94&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;盐城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;95&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;扬州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;96&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;镇江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;97&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;泰州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;98&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;宿迁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;99&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;杭州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;100&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;宁波市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;101&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;温州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;102&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;嘉兴市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;103&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;湖州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;104&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;绍兴市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;105&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;金华市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;106&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;衢州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;107&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;舟山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;108&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;台州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;109&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;丽水市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;110&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;合肥市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;111&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;芜湖市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;112&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;蚌埠市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;113&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;淮南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;114&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;马鞍山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;115&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;淮北市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;116&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;铜陵市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;117&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;安庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;118&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;黄山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;119&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;滁州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;120&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;阜阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;121&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;宿州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;122&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;巢湖市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;123&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;六安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;124&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;亳州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;125&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;池州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;126&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;宣城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;127&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;福州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;128&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;厦门市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;129&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;莆田市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;130&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;三明市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;131&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;泉州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;132&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;漳州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;133&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;南平市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;134&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;龙岩市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;135&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;宁德市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;136&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;南昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;137&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;景德镇市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;138&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;萍乡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;139&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;九江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;140&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;新余市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;141&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;鹰潭市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;142&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;赣州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;143&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;吉安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;144&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;宜春市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;145&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;抚州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;146&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;上饶市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;147&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;济南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;148&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;青岛市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;149&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;淄博市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;150&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;枣庄市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;151&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;东营市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;152&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;烟台市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;153&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;潍坊市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;154&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;济宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;155&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;泰安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;156&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;威海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;157&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;日照市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;158&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;莱芜市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;159&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;临沂市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;160&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;德州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;161&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;聊城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;162&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;滨州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;163&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;菏泽市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;164&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;郑州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;165&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;开封市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;166&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;洛阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;167&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;平顶山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;168&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;安阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;169&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;鹤壁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;170&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;新乡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;171&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;焦作市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;172&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;濮阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;173&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;许昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;174&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;漯河市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;175&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;三门峡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;176&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;南阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;177&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;商丘市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;178&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;信阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;179&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;周口市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;180&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;驻马店市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;181&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;济源市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;182&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;武汉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;183&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;黄石市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;184&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;十堰市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;185&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;荆州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;186&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;宜昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;187&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;襄樊市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;188&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;鄂州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;189&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;荆门市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;190&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;孝感市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;191&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;黄冈市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;192&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;咸宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;193&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;随州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;194&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;仙桃市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;195&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;天门市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;196&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;潜江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;197&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;神农架林区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;198&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;恩施土家族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;199&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;长沙市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;200&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;株洲市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;201&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;湘潭市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;202&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;衡阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;203&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;邵阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;204&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;岳阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;205&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;常德市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;206&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;张家界市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;207&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;益阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;208&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;郴州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;209&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;永州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;210&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;怀化市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;211&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;娄底市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;212&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;湘西土家族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;213&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;广州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;214&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;深圳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;215&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;珠海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;216&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;汕头市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;217&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;韶关市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;218&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;佛山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;219&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;江门市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;220&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;湛江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;221&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;茂名市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;222&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;肇庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;223&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;惠州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;224&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;梅州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;225&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;汕尾市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;226&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;河源市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;227&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;阳江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;228&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;清远市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;229&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;东莞市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;230&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;中山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;231&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;潮州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;232&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;揭阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;233&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;云浮市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;234&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;兰州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;235&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;金昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;236&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;白银市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;237&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;天水市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;238&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;嘉峪关市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;239&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;武威市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;240&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;张掖市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;241&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;平凉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;242&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;酒泉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;243&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;庆阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;244&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;定西市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;245&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;陇南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;246&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;临夏回族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;247&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;甘南藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;248&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;成都市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;249&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;自贡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;250&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;攀枝花市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;251&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;泸州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;252&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;德阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;253&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;绵阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;254&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;广元市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;255&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;遂宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;256&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;内江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;257&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;乐山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;258&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;南充市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;259&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;眉山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;260&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;宜宾市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;261&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;广安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;262&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;达州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;263&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;雅安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;264&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;巴中市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;265&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;资阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;266&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;阿坝藏族羌族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;267&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;甘孜藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;268&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;凉山彝族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;269&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;贵阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;270&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;六盘水市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;271&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;遵义市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;272&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;安顺市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;273&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;铜仁地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;274&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;毕节地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;275&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;黔西南布依族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;276&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;黔东南苗族侗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;277&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;黔南布依族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;278&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;海口市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;279&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;三亚市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;280&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;五指山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;281&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;琼海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;282&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;儋州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;283&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;文昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;284&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;万宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;285&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;东方市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;286&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;澄迈县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;287&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;定安县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;288&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;屯昌县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;289&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;临高县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;290&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;白沙黎族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;291&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;昌江黎族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;292&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;乐东黎族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;293&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;陵水黎族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;294&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;保亭黎族苗族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;295&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;琼中黎族苗族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;296&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;昆明市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;297&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;曲靖市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;298&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;玉溪市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;299&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;保山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;300&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;昭通市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;301&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;丽江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;302&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;思茅市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;303&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;临沧市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;304&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;文山壮族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;305&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;红河哈尼族彝族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;306&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;西双版纳傣族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;307&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;楚雄彝族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;308&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;大理白族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;309&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;德宏傣族景颇族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;310&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;怒江傈傈族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;311&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;迪庆藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;312&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;西宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;313&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;海东地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;314&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;海北藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;315&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;黄南藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;316&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;海南藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;317&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;果洛藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;318&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;玉树藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;319&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;海西蒙古族藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;320&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;西安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;321&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;铜川市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;322&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;宝鸡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;323&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;咸阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;324&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;渭南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;325&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;延安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;326&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;汉中市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;327&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;榆林市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;328&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;安康市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;329&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;商洛市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;330&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;南宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;331&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;柳州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;332&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;桂林市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;333&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;梧州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;334&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;北海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;335&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;防城港市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;336&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;钦州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;337&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;贵港市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;338&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;玉林市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;339&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;百色市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;340&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;贺州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;341&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;河池市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;342&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;来宾市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;343&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;崇左市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;344&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;拉萨市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;345&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;那曲地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;346&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;昌都地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;347&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;山南地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;348&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;日喀则地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;349&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;阿里地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;350&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;林芝地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;351&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;银川市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;352&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;石嘴山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;353&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;吴忠市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;354&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;固原市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;355&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;中卫市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;356&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;乌鲁木齐市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;357&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;克拉玛依市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;358&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;石河子市　&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;359&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阿拉尔市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;360&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;图木舒克市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;361&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;五家渠市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;362&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;吐鲁番市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;363&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阿克苏市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;364&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;喀什市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;365&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;哈密市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;366&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;和田市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;367&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阿图什市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;368&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;库尔勒市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;369&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;昌吉市　&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;370&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阜康市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;371&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;米泉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;372&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;博乐市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;373&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;伊宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;374&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;奎屯市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;375&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;塔城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;376&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;乌苏市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;377&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阿勒泰市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;378&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;呼和浩特市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;379&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;包头市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;380&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;乌海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;381&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;赤峰市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;382&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;通辽市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;383&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;鄂尔多斯市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;384&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;呼伦贝尔市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;385&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;巴彦淖尔市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;386&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;乌兰察布市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;387&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;锡林郭勒盟&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;388&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;兴安盟&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;389&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;阿拉善盟&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;390&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;33&amp;#39;, &amp;#39;澳门特别行政区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO &amp;nbsp;city &amp;nbsp;VALUES (&amp;#39;391&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;34&amp;#39;, &amp;#39;香港特别行政区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
</description>
   </item>
   
   <item>
     <title>中国省市数据库表-MYSQL版</title>
     <link>/blog/baoyalv/other/2011/03/05/506</link>
     <description>&lt;p&gt;
	最近需求中国的省市表，找了半天，终于找到了一个mysql sql文件，先记下来，有空再转成postgresql版本的。&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
	DROP TABLE IF EXISTS `province`;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	CREATE TABLE `province` (&lt;/div&gt;
&lt;div&gt;
	`id` int(11) NOT NULL AUTO_INCREMENT,&lt;/div&gt;
&lt;div&gt;
	`name` varchar(50) DEFAULT NULL,&lt;/div&gt;
&lt;div&gt;
	PRIMARY KEY (`id`)&lt;/div&gt;
&lt;div&gt;
	) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	-- ----------------------------&lt;/div&gt;
&lt;div&gt;
	-- Records of province&lt;/div&gt;
&lt;div&gt;
	-- ----------------------------&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;1&amp;#39;, &amp;#39;北京市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;2&amp;#39;, &amp;#39;天津市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;3&amp;#39;, &amp;#39;上海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;4&amp;#39;, &amp;#39;重庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;5&amp;#39;, &amp;#39;河北省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;6&amp;#39;, &amp;#39;山西省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;7&amp;#39;, &amp;#39;台湾省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;8&amp;#39;, &amp;#39;辽宁省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;9&amp;#39;, &amp;#39;吉林省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;10&amp;#39;, &amp;#39;黑龙江省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;11&amp;#39;, &amp;#39;江苏省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;12&amp;#39;, &amp;#39;浙江省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;13&amp;#39;, &amp;#39;安徽省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;14&amp;#39;, &amp;#39;福建省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;15&amp;#39;, &amp;#39;江西省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;16&amp;#39;, &amp;#39;山东省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;17&amp;#39;, &amp;#39;河南省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;18&amp;#39;, &amp;#39;湖北省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;19&amp;#39;, &amp;#39;湖南省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;20&amp;#39;, &amp;#39;广东省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;21&amp;#39;, &amp;#39;甘肃省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;22&amp;#39;, &amp;#39;四川省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;23&amp;#39;, &amp;#39;贵州省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;24&amp;#39;, &amp;#39;海南省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;25&amp;#39;, &amp;#39;云南省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;26&amp;#39;, &amp;#39;青海省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;27&amp;#39;, &amp;#39;陕西省&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;28&amp;#39;, &amp;#39;广西壮族自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;29&amp;#39;, &amp;#39;西藏自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;30&amp;#39;, &amp;#39;宁夏回族自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;31&amp;#39;, &amp;#39;新疆维吾尔自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;32&amp;#39;, &amp;#39;内蒙古自治区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;33&amp;#39;, &amp;#39;澳门特别行政区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `province` VALUES (&amp;#39;34&amp;#39;, &amp;#39;香港特别行政区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	-- ----------------------------&lt;/div&gt;
&lt;div&gt;
	-- Table structure for `city`&lt;/div&gt;
&lt;div&gt;
	-- ----------------------------&lt;/div&gt;
&lt;div&gt;
	DROP TABLE IF EXISTS `city`;&lt;/div&gt;
&lt;div&gt;
	CREATE TABLE `city` (&lt;/div&gt;
&lt;div&gt;
	`id` int(11) NOT NULL AUTO_INCREMENT,&lt;/div&gt;
&lt;div&gt;
	`city_index` int(11) NOT NULL,&lt;/div&gt;
&lt;div&gt;
	`province_id` int(11) NOT NULL,&lt;/div&gt;
&lt;div&gt;
	`name` varchar(100) NOT NULL DEFAULT &amp;#39;&amp;#39;,&lt;/div&gt;
&lt;div&gt;
	PRIMARY KEY (`id`)&lt;/div&gt;
&lt;div&gt;
	) ENGINE=InnoDB AUTO_INCREMENT=392 DEFAULT CHARSET=utf8;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	-- ----------------------------&lt;/div&gt;
&lt;div&gt;
	-- Records of city&lt;/div&gt;
&lt;div&gt;
	-- ----------------------------&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;1&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;北京市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;2&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;天津市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;3&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;上海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;4&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;重庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;5&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;石家庄市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;6&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;唐山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;7&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;秦皇岛市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;8&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;邯郸市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;9&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;邢台市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;10&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;保定市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;11&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;张家口市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;12&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;承德市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;13&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;沧州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;14&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;廊坊市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;15&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;衡水市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;16&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;太原市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;17&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;大同市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;18&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;阳泉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;19&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;长治市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;20&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;晋城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;21&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;朔州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;22&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;晋中市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;23&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;运城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;24&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;忻州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;25&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;临汾市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;26&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;吕梁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;27&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台北市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;28&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;高雄市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;29&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;基隆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;30&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台中市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;31&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;32&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;新竹市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;33&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;嘉义市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;34&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台北县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;35&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;宜兰县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;36&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;桃园县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;37&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;新竹县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;38&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;苗栗县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;39&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台中县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;40&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;彰化县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;41&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;南投县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;42&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;云林县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;43&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;嘉义县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;44&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台南县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;45&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;高雄县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;46&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;屏东县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;47&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;澎湖县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;48&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;台东县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;49&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;花莲县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;50&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;沈阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;51&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;大连市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;52&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;鞍山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;53&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;抚顺市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;54&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;本溪市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;55&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;丹东市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;56&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;锦州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;57&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;营口市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;58&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;阜新市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;59&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;辽阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;60&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;盘锦市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;61&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;铁岭市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;62&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;朝阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;63&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;葫芦岛市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;64&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;长春市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;65&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;吉林市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;66&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;四平市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;67&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;辽源市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;68&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;通化市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;69&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;白山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;70&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;松原市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;71&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;白城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;72&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;延边朝鲜族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;73&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;哈尔滨市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;74&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;齐齐哈尔市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;75&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;鹤岗市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;76&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;双鸭山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;77&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;鸡西市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;78&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;大庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;79&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;伊春市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;80&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;牡丹江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;81&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;佳木斯市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;82&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;七台河市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;83&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;黑河市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;84&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;绥化市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;85&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;大兴安岭地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;86&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;南京市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;87&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;无锡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;88&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;徐州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;89&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;常州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;90&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;苏州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;91&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;南通市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;92&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;连云港市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;93&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;淮安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;94&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;盐城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;95&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;扬州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;96&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;镇江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;97&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;泰州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;98&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;宿迁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;99&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;杭州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;100&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;宁波市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;101&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;温州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;102&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;嘉兴市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;103&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;湖州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;104&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;绍兴市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;105&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;金华市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;106&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;衢州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;107&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;舟山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;108&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;台州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;109&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;丽水市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;110&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;合肥市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;111&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;芜湖市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;112&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;蚌埠市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;113&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;淮南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;114&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;马鞍山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;115&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;淮北市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;116&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;铜陵市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;117&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;安庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;118&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;黄山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;119&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;滁州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;120&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;阜阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;121&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;宿州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;122&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;巢湖市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;123&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;六安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;124&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;亳州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;125&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;池州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;126&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;宣城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;127&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;福州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;128&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;厦门市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;129&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;莆田市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;130&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;三明市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;131&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;泉州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;132&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;漳州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;133&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;南平市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;134&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;龙岩市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;135&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;宁德市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;136&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;南昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;137&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;景德镇市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;138&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;萍乡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;139&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;九江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;140&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;新余市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;141&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;鹰潭市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;142&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;赣州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;143&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;吉安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;144&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;宜春市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;145&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;抚州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;146&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;上饶市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;147&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;济南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;148&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;青岛市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;149&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;淄博市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;150&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;枣庄市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;151&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;东营市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;152&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;烟台市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;153&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;潍坊市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;154&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;济宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;155&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;泰安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;156&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;威海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;157&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;日照市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;158&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;莱芜市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;159&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;临沂市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;160&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;德州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;161&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;聊城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;162&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;滨州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;163&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;菏泽市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;164&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;郑州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;165&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;开封市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;166&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;洛阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;167&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;平顶山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;168&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;安阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;169&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;鹤壁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;170&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;新乡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;171&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;焦作市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;172&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;濮阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;173&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;许昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;174&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;漯河市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;175&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;三门峡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;176&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;南阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;177&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;商丘市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;178&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;信阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;179&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;周口市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;180&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;驻马店市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;181&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;济源市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;182&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;武汉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;183&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;黄石市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;184&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;十堰市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;185&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;荆州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;186&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;宜昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;187&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;襄樊市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;188&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;鄂州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;189&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;荆门市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;190&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;孝感市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;191&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;黄冈市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;192&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;咸宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;193&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;随州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;194&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;仙桃市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;195&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;天门市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;196&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;潜江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;197&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;神农架林区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;198&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;恩施土家族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;199&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;长沙市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;200&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;株洲市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;201&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;湘潭市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;202&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;衡阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;203&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;邵阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;204&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;岳阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;205&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;常德市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;206&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;张家界市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;207&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;益阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;208&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;郴州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;209&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;永州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;210&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;怀化市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;211&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;娄底市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;212&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;湘西土家族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;213&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;广州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;214&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;深圳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;215&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;珠海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;216&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;汕头市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;217&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;韶关市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;218&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;佛山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;219&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;江门市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;220&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;湛江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;221&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;茂名市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;222&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;肇庆市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;223&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;惠州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;224&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;梅州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;225&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;汕尾市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;226&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;河源市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;227&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;阳江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;228&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;清远市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;229&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;东莞市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;230&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;中山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;231&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;潮州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;232&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;揭阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;233&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;云浮市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;234&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;兰州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;235&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;金昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;236&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;白银市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;237&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;天水市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;238&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;嘉峪关市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;239&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;武威市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;240&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;张掖市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;241&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;平凉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;242&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;酒泉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;243&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;庆阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;244&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;定西市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;245&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;陇南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;246&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;临夏回族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;247&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;甘南藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;248&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;成都市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;249&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;自贡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;250&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;攀枝花市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;251&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;泸州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;252&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;德阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;253&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;绵阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;254&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;广元市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;255&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;遂宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;256&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;内江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;257&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;乐山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;258&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;南充市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;259&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;眉山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;260&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;宜宾市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;261&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;广安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;262&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;达州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;263&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;雅安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;264&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;巴中市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;265&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;资阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;266&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;阿坝藏族羌族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;267&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;甘孜藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;268&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;凉山彝族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;269&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;贵阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;270&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;六盘水市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;271&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;遵义市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;272&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;安顺市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;273&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;铜仁地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;274&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;毕节地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;275&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;黔西南布依族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;276&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;黔东南苗族侗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;277&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;23&amp;#39;, &amp;#39;黔南布依族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;278&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;海口市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;279&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;三亚市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;280&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;五指山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;281&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;琼海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;282&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;儋州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;283&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;文昌市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;284&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;万宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;285&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;东方市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;286&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;澄迈县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;287&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;定安县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;288&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;屯昌县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;289&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;临高县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;290&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;白沙黎族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;291&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;昌江黎族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;292&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;乐东黎族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;293&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;陵水黎族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;294&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;保亭黎族苗族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;295&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;24&amp;#39;, &amp;#39;琼中黎族苗族自治县&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;296&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;昆明市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;297&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;曲靖市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;298&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;玉溪市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;299&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;保山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;300&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;昭通市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;301&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;丽江市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;302&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;思茅市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;303&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;临沧市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;304&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;文山壮族苗族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;305&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;红河哈尼族彝族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;306&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;西双版纳傣族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;307&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;楚雄彝族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;308&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;大理白族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;309&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;德宏傣族景颇族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;310&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;怒江傈傈族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;311&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;25&amp;#39;, &amp;#39;迪庆藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;312&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;西宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;313&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;海东地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;314&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;海北藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;315&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;黄南藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;316&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;海南藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;317&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;果洛藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;318&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;玉树藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;319&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;26&amp;#39;, &amp;#39;海西蒙古族藏族自治州&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;320&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;西安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;321&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;铜川市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;322&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;宝鸡市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;323&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;咸阳市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;324&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;渭南市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;325&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;延安市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;326&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;汉中市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;327&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;榆林市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;328&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;安康市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;329&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;27&amp;#39;, &amp;#39;商洛市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;330&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;南宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;331&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;柳州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;332&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;桂林市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;333&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;梧州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;334&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;北海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;335&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;防城港市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;336&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;钦州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;337&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;贵港市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;338&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;玉林市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;339&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;百色市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;340&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;贺州市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;341&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;河池市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;342&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;来宾市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;343&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;28&amp;#39;, &amp;#39;崇左市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;344&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;拉萨市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;345&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;那曲地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;346&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;昌都地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;347&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;山南地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;348&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;日喀则地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;349&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;阿里地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;350&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;29&amp;#39;, &amp;#39;林芝地区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;351&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;银川市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;352&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;石嘴山市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;353&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;吴忠市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;354&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;固原市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;355&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;30&amp;#39;, &amp;#39;中卫市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;356&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;乌鲁木齐市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;357&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;克拉玛依市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;358&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;石河子市　&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;359&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阿拉尔市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;360&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;图木舒克市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;361&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;五家渠市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;362&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;吐鲁番市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;363&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阿克苏市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;364&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;喀什市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;365&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;哈密市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;366&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;和田市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;367&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阿图什市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;368&amp;#39;, &amp;#39;13&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;库尔勒市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;369&amp;#39;, &amp;#39;14&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;昌吉市　&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;370&amp;#39;, &amp;#39;15&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阜康市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;371&amp;#39;, &amp;#39;16&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;米泉市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;372&amp;#39;, &amp;#39;17&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;博乐市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;373&amp;#39;, &amp;#39;18&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;伊宁市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;374&amp;#39;, &amp;#39;19&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;奎屯市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;375&amp;#39;, &amp;#39;20&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;塔城市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;376&amp;#39;, &amp;#39;21&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;乌苏市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;377&amp;#39;, &amp;#39;22&amp;#39;, &amp;#39;31&amp;#39;, &amp;#39;阿勒泰市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;378&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;呼和浩特市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;379&amp;#39;, &amp;#39;2&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;包头市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;380&amp;#39;, &amp;#39;3&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;乌海市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;381&amp;#39;, &amp;#39;4&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;赤峰市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;382&amp;#39;, &amp;#39;5&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;通辽市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;383&amp;#39;, &amp;#39;6&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;鄂尔多斯市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;384&amp;#39;, &amp;#39;7&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;呼伦贝尔市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;385&amp;#39;, &amp;#39;8&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;巴彦淖尔市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;386&amp;#39;, &amp;#39;9&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;乌兰察布市&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;387&amp;#39;, &amp;#39;10&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;锡林郭勒盟&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;388&amp;#39;, &amp;#39;11&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;兴安盟&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;389&amp;#39;, &amp;#39;12&amp;#39;, &amp;#39;32&amp;#39;, &amp;#39;阿拉善盟&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;390&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;33&amp;#39;, &amp;#39;澳门特别行政区&amp;#39;);&lt;/div&gt;
&lt;div&gt;
	INSERT INTO `city` VALUES (&amp;#39;391&amp;#39;, &amp;#39;1&amp;#39;, &amp;#39;34&amp;#39;, &amp;#39;香港特别行政区&amp;#39;);&lt;/div&gt;
</description>
   </item>
   
   <item>
     <title>粗略记录祖宗往事</title>
     <link>/blog/baoyalv/other/2011/02/20/505</link>
     <description>&lt;p&gt;
	这次回去，很多事情忙，一个大家庭的成员都回来差不多了，小孩和老人相差将近80年！和自己年龄相近的人都认识，唯些许小孩和老人都不识面了，因为我出来的时候，有些小孩没有出生，而自己小的时候也很少见到远门的老人们。几十年的历史，不是我所能认识的了，离家的时候，爷爷还健在，奶奶也还硬朗，如今爷爷去了，年长的只剩下奶奶！眼前的情景，不知道拿什么来形容。吃完晚饭仔细端详了一下奶奶，古铜色的脸爬满了皱纹，脸上的黑斑记录着逝去的岁月！那逝去的年月，我想该是要粗略记下来了，为了尽量保持历史的真实性，开始克制自己急迫的情绪，保持平静的心情，也让奶奶静下来，把那段近百年的往事娓娓道来。可惜没有完成预期的任务，说到过去的事情，奶奶始终没有办法平静下来，因为没有太多的事情在她人生经历和知识看来是理解不了的，还有段时期她还不在场，后面也是老人们讲述的。致使记录带些个人情感和不真实的元素，但我实在找不到真实的线索了！不如把她说的都记录下来。&lt;/p&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	我们村（欧村）最初是在桂平往下的一个村庄（假名 牛麻）迁徙过来的，原因不详。祖先可能后来有了两个儿子，结果分东西两边，一个住在东边一个住在西边。我家族分支在东边；后来村子发展道了一百多人，又有一两家人搬进来了，原先是姓 马，后面未知原因也改姓 潘了，可能是为了更好的相处的缘故吧！&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	我家的太爷爷的爸爸，28-30岁中途夭折（在桂平去世），当时太爷爷还小。成年后，娶了石龙白糖的太奶奶。太爷爷和太奶奶那时大概在鸦片战争时代，当时鸦片在村里毒害了很多祖先，包括太爷爷也有烟瘾，太爷爷应该有三个兄弟，形成了三个分支，也就是村里东边最大的三个分支，育期是太三奶奶分支的，业幸估计是太大爷爷分支的，我便是二分支的了。我的太爷爷中年时开始吸鸦片，酗酒。太奶奶喜欢干净，很少去料理农活。两人有四子三女，由于晚期的衰落，爷爷的两个兄弟被贩卖到厚陆..只剩下爷爷和小爷爷他们，至于三个姑婆出嫁不详。太爷爷享年53，太奶奶享年93左右，是村里最长寿的一个老人之一。爷爷20岁左右，娶了一门妻，由于长年在外，妻子改嫁（奶奶说被太奶奶贩卖了），后来爷爷34岁左右，娶了奶奶，两人年龄间隔11岁，奶奶是普平的陆村人。两人一共有三儿两女，两女现在广东，大姑姑生于1959年，先嫁如玉林地区，后来一家迁徙到广东。小姑生于1966年，嫁如广东地区，有两儿；我爸是长子，生于1953年，妈妈是石龙良山人（原先是庆丰黄村人，家里有两个哥哥，三个姐姐，二姐嫁个石龙白洞，大姐姐嫁个石龙良山，也是妈妈的养家，大姐姐既是妈妈的大姐也是养母，也就是我现在的外婆，外婆无嗣，领养了外公小弟的四儿子为子，我妈妈是养长女，还有一个养女，也出于外公小弟的女儿。外公三兄弟）。爸爸妈妈有两儿两女，大姐嫁到广东化州地区，二姐加入石龙白糖，大哥20岁娶妻，现有两子，无女。我和业幸是村里的早年出去的大学生，高中均在桂平浔高就读，三年后，业幸考进广西大学，而我就读于内蒙古的一所学校，我于2011年结婚，妻子是庆丰林桥大竹园村人，尚未有子。大姐两女一儿，儿子排名第二。二姐一子一女。&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	爷爷享年88岁，于1999年家里去世，父亲1953年生，早年马车做运输，中途卖过猪肉，后来改回运输，开过手扶拖拉机，和小货车，中年1993年不幸染疾去世，终年40.二叔生于1955年，从事渔业，承包村里的池塘养鱼，家有两儿三女，大女儿是长女，嫁入广东地区，二女儿加入北流地区，小女儿未嫁。大儿子已婚，一女一子，小儿子未娶。二婶石龙龙山人。于1999年，二叔壮年染疾去世。小叔生于1967年，早年发酵豆芽，后期改行做烧鸭至今。小婶石龙白糖人，有一儿两女，儿子2010年结婚，在家族中排行老四，妻子石龙人。小叔大女儿现就读于桂林一所大学，小女儿初三。&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	小爷爷家族，有五儿一女！大儿子在柳州市，上门女婿；二儿子从医，中年娶妻，东北大同人，无嗣，有养女一个，现在南宁就读大学。三儿早期教师，先在广东惠州安家，从事建筑业，有一儿一女，女儿是长女，加入石龙普平。四儿子有两儿三女，五儿子有一儿两女，均未成年。&lt;/div&gt;
</description>
   </item>
   
   <item>
     <title>架设在GAE上的博客程序</title>
     <link>/blog/faby/other/2011/02/10/504</link>
     <description>&lt;p&gt;
	架设在GAE上的博客，大概有近十种，micolog、pyweblog、n23、xian-min、tublog、pblog等。我通通下载安装试用了一遍，最后排除了所有，只剩下micolog。其它博客的优缺点如下，好坏不分先后：&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Pyweblog&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://plog.appspot.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://plog.appspot.com/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/pyweblog/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/pyweblog/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：界面清爽，写文章、管理、评论功能完备，支持上传，无任何广告&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：不支持导出导入&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;Cpedia&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://blog.cpedia.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://blog.cpedia.com/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/cpedialog&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/cpedialog&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：页面设计非常强大，界面清新，功能完善，后台可以拖动设置主页各模块位置。&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：过于臃肿，近7M；嵌入难以去除的广告，需手动去除；不支持导出导入。&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;n23&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://n23.appspot.com/blog&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://n23.appspot.com/blog&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/n23/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/n23/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：测试未成功，页面混乱；&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：过于臃肿，达7.8M；&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;xian-min&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://xian-min.appspot.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://xian-min.appspot.com/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/xian-min/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/xian-min/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：程序简约，仅几百K；最基本发文章、修改删除文章功能，评论功能。&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：过于简单，甚至没有文本编辑器，不支持导入导出&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;tublog&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：暂无&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/tublog/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/tublog/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：绝对精简，发文章管理评论均有，不错的编辑器；注意后台是/admin，主页无链接；无任何广告&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：精简不会成为它的缺点，它就是这样；不支持导入导出&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;potlatchblog&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://aaronspotlatch.appspot.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://aaronspotlatch.appspot.com/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://github.com/araddon/potlatchblog/tree/master&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://github.com/araddon/potlatchblog/tree/master&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：发文章、管理评论等基本功能均有，注意后台是/admin，主页无链接；无任何广告&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：未排版，无特殊之处；不支持导入导出&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;niub&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://niubi.appspot.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://niubi.appspot.com/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/niubi/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/niubi/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：暂无，运行出错&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：程序非常大，17M；&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;onlypy &lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://onlypython.appspot.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://onlypython.appspot.com&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/onlypy/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/onlypy/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：界面非常整洁，功能完备。&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：程序非常大，18M；过多作者信息&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;i-here&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://ihere.appspot.com/blog/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://ihere.appspot.com/blog/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/ihere-blog/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/ihere-blog/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：作者热情，很有前途；界面简约、功能完善；支持兼容wordpress导入导出；支持多人协作；可以修改文章发布时间；支持Live Writer发布；支持上传；支持Development Console可视化查看后台数据库、流量；支持URL重定向；无任何广告&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：程序过大，11M，但支持这么多功能，大些是可以理解的&lt;/p&gt;
&lt;p&gt;
	看了这么多优秀的博客程序，如果不是因为micoblog的简约和兼容，我肯定选择了i-here。不过我最早接触micoblog，给我留下了很好的印象。此外本博客使用vvonder修改完善的micoblog版本，功能多了不少，界面也更好看。&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;micolog&lt;/strong&gt;&lt;br /&gt;
	&lt;strong&gt;演示&lt;/strong&gt;：&lt;a href=&quot;http://xuming.net/&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://xuming.net&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;代码&lt;/strong&gt;：&lt;a href=&quot;http://code.google.com/p/micolog/&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://code.google.com/p/micolog/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;strong&gt;优点&lt;/strong&gt;：界面清新，程序精简(仅800K)，发文章、管理、评论、Tags、分类等都和上面大部分博客一样非常完备；后台管理界面友好，支持RSS，支持Wordpress格式导入导出；容易修改移植Wordpress主题；支持上传文件；支持Live Writer发布；无任何广告；作者热情，用户量较大&lt;br /&gt;
	&lt;strong&gt;缺点&lt;/strong&gt;：比较一下i-here，我个人非常需要它的修改文章发布时间的功能，虽然我可以通过导出&amp;ndash;修改&amp;ndash;导入的方式达到目的；不支持多人协作&lt;/p&gt;
&lt;p&gt;
	就是从这些博客的应用里，我看到了Google App Engine和Python的好玩之处。上个月我开始学习Python，我还需要学习一下Google APP和Django等这些开发文档。我想在一两个月内，完善micoblog，实现我需要的功能。对于micolog，我还希望得到一下一些功能：&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		导出时支持将图片备份至本地，同样支持将备份图片还原&lt;/li&gt;
	&lt;li&gt;
		加入验证码&lt;/li&gt;
	&lt;li&gt;
		可拖动设置主页模块&lt;/li&gt;
	&lt;li&gt;
		插件支持，如Twitter等&lt;/li&gt;
	&lt;li&gt;
		在线换肤&lt;/li&gt;
	&lt;li&gt;
		在线升级&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	&lt;strong&gt;我收藏的几个使用micolog的网站&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://vvonderblog.appspot.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://vvonderblog.appspot.com/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;a href=&quot;http://www.houkai.com/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://www.houkai.com/&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
	&lt;a href=&quot;http://www.kgblog.net/&quot; target=&quot;_blank&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://www.kgblog.net/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	来源：&lt;a href=&quot;http://www.pugwoo.com/2009/11/12/choose-micolog-new-begin.html&quot;&gt;&lt;font color=&quot;#2970a6&quot;&gt;http://www.pugwoo.com/2009/11/12/choose-micolog-new-begin.html&lt;/font&gt;&lt;/a&gt;&lt;span style=&quot;display: none&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
</description>
   </item>
   
   <item>
     <title>Django上使用gravatar</title>
     <link>/blog/baoyalv/Django/2011/01/08/503</link>
     <description>&lt;div&gt;gravatar是什么？从它的全拼字母A Globally Recognized Avatar来识别，大概可以理解为：全球公认的头像；全球认证的头像...你可以到gravatar官方网站上传自己的头像，然后到第三方网站上发帖留言写博客...这时网站上就显示你的头像了，前提条件是这个第三方网站必须支持gravatar应用才行，以下就是今天说的重点了：让自己的网站支持gravatar应用。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;说做法之前，我们顺便提些东西。gravatar应用的使用范围越来越广，你除了在gravatar官网上传自己的公认头像之外，你还可以在其他组织的Email上设置，比如在Google的Gmail里上传了头像，gravatar会找到Google上的头像标示你本人...因为gravatar关联的信息是你的Email。所以你的Email是关键所在。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;一 让自己的网站支持gravatar，有什么用？&lt;/b&gt;&lt;/div&gt;&lt;div&gt;好吧，看来得说说gravatar的用途了。你也知道，不仅中国的网民，全球的其他网民（可能会好点）都喜欢免费的午餐，感兴趣的东西喜欢看看，喜欢说点什么，但非要注册后才能看才能发言的话，他们宁愿溜之大吉...站长已经司空见惯，应该接受事实，所以干脆给这些可爱的人更大的空间，让他们和自己的会员一样，能看他们喜欢的东西，能说说自己的见解，而无需注册成为自己的会员...随之的匿名访问，匿名评论应用红遍大江南北...那时，站长怎么给匿名用户保留个身份呢？嗯，留网站地址，昵称，Email，足够了;自从gravatar诞生后，匿名用户又拥有了自己的头像...^_^&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;除了让匿名用户显示真实头像之外，其实还有很多用途，gravatar官网上说的很清楚，E文可以的，去看看吧：http://cn.gravatar.com/&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;通俗来说，就是Email和真实头像直接挂钩。如果站长足够灵活，可以不用做用户的头像上传应用，直接用gravatar实现相似的功能了。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;二 怎么让自己的网站支持gravatar？&lt;/b&gt;&lt;/div&gt;&lt;div&gt;好吧，说说gravatar官方的做法，gravatar支持的开发语言很多种，同样Djanog也得到了支持，官方推荐使用tag的方法。代码如下：&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: helvetica, arial, freesans, clean, sans-serif; line-height: 16px; border-collapse: separate; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal Monaco, &#39;Courier New&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, monospace; line-height: 1.4em; font-family: &#39;Bitstream Vera Sans Mono&#39;, Courier, monospace; &quot;&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#999988&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: helvetica, arial, freesans, clean, sans-serif; color: rgb(0, 0, 0); font-style: normal; white-space: normal; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal Monaco, &#39;Courier New&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, monospace; line-height: 1.4em; font-family: &#39;Bitstream Vera Sans Mono&#39;, Courier, monospace; &quot;&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### gravatar.py ###############&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### place inside a &#39;templatetags&#39; directory inside the top level of a Django app &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;###(not project, must be inside an app)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC4&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### at the top of your page template include this:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC5&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### {% load gravatar %}&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC6&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### and to use the url do this:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC7&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### &amp;lt;img src=&quot;{% gravatar_url &#39;someone@somewhere.com&#39; %}&quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC8&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### or&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC9&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### &amp;lt;img src=&quot;{% gravatar_url sometemplatevariable %}&quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC10&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;c&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 136); font-style: italic; &quot;&gt;### just make sure to update the &quot;default&quot; image path below&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC11&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC12&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;kn&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(85, 85, 85); &quot;&gt;django&lt;/span&gt; &lt;span class=&quot;kn&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;template&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC13&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;kn&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(85, 85, 85); &quot;&gt;urllib&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nn&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(85, 85, 85); &quot;&gt;hashlib&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC14&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC15&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;register&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;template&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;Library&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC16&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC17&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(68, 85, 136); font-weight: bold; &quot;&gt;GravatarUrlNode&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;template&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;Node&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC18&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 0, 0); font-weight: bold; &quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 153); &quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC19&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;bp&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 153); &quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;template&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;Variable&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC20&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC21&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 0, 0); font-weight: bold; &quot;&gt;render&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 153); &quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;context&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC22&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC23&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;=&lt;/span&gt; &lt;span class=&quot;bp&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 153, 153); &quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;resolve&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;context&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC24&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;except&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;template&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;VariableDoesNotExist&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC25&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;return&lt;/span&gt; &lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&#39;&#39;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC26&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC27&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;default&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&quot;http://example.com/static/images/defaultavatar.jpg&quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC28&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;size&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(0, 153, 153); &quot;&gt;40&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC29&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC30&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;gravatar_url&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&quot;http://www.gravatar.com/avatar/&quot;&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;hashlib&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;md5&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;())&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;hexdigest&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;+&lt;/span&gt; &lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&quot;?&quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC31&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;gravatar_url&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;urllib&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;urlencode&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&#39;d&#39;&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;default&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&#39;s&#39;&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nb&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(0, 134, 179); &quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;)})&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC32&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC33&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;gravatar_url&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC34&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC35&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;nd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;@register.tag&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC36&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 0, 0); font-weight: bold; &quot;&gt;gravatar_url&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;parser&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;token&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC37&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;try&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC38&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;tag_name&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;token&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;split_contents&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC39&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC40&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;except&lt;/span&gt; &lt;span class=&quot;ne&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 0, 0); font-weight: bold; &quot;&gt;ValueError&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC41&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;template&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;TemplateSyntaxError&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;si&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;%r&lt;/span&gt;&lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt; tag requires a single argument&quot;&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;%&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;token&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;contents&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;()[&lt;/span&gt;&lt;span class=&quot;mi&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(0, 153, 153); &quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC42&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;br style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC43&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;GravatarUrlNode&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/i&gt;&lt;/font&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;tag的使用方法，就简单说说吧：&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Django的app上建立一个文件夹templatetags，里面放一个__init__.py文件（可以是空的），让templatetags成为python的一个包，然后建立gravatar.py文件，把以上的代码复制过去，准备工作就算完成了。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;在templates里使用，比如blog.html中，加入{% load gravatar %}，装载gravatar的tag.这时blog.html能使用注册的gravatar_url方法了。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;如：&amp;lt;img src=&quot;{% gravatar_url c.email %}&quot; alt=&quot;&quot;/&amp;gt;&lt;/div&gt;&lt;div&gt;给gravatar_url函数传入用户的email即可解析到该email相对应的头像地址。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;使用官方的代码，值得注意的是，需要修改些代码，请把default = &quot;http://example.com/static/images/defaultavatar.jpg&quot;修改成 真实的地址，如果你网站上有默认的头像，请附上真实的地址，不然gravatar发现该email没有上传头像时，就解析不出gravatar的头像地址了。如果你网站没有所谓默认的头像，建议拿掉default参数；把gravatar_url += urllib.urlencode({&#39;d&#39;:default, &#39;s&#39;:str(size)})改成gravatar_url += urllib.urlencode({&#39;s&#39;:str(size)})。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;还有就是size = 40，是显示头像的大小，单位是像素。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;官网建议tag的用法，只要我们摸索了gravatar做法，也可以使用filter的方法，我们自己在gravatar.py底下写几行代码就可以搞定了：&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: helvetica, arial, freesans, clean, sans-serif; line-height: 16px; border-collapse: separate; &quot;&gt;&lt;pre style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal Monaco, &#39;Courier New&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, monospace; line-height: 1.4em; font-family: &#39;Bitstream Vera Sans Mono&#39;, Courier, monospace; &quot;&gt;&lt;div class=&quot;line&quot; id=&quot;LC1&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;nd&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;@register.filter&lt;/span&gt;   &lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC2&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(153, 0, 0); font-weight: bold; &quot;&gt;get_gravatar&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line&quot; id=&quot;LC3&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; line-height: 1.4em; &quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;k&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;return&lt;/span&gt; &lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&quot;http://www.gravatar.com/avatar/&quot;&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;hashlib&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;md5&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;email&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;())&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;hexdigest&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; &quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; font-weight: bold; &quot;&gt;+&lt;/span&gt;&lt;span class=&quot;s&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(221, 17, 68); &quot;&gt;&#39;.jpg?s=40&#39;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;templates上的用法：&lt;/div&gt;&lt;div&gt;&amp;lt;img src=&quot;{{c.email|get_gravatar }}&quot; alt=&quot;&quot;/&amp;gt;&lt;/div&gt;&lt;div&gt;好像没有什么东西说的了，必要加上gravatar应用的同学，可以试试...&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>Django和Ajax的那些事儿-开篇</title>
     <link>/blog/baoyalv/Django/2010/12/31/502</link>
     <description>&lt;p&gt;
	把Django和Ajax放在一起，那是很久远的事了，有人说在Ajax大紫大红的时候，Django错失了机会，没有把Ajax集成到自身，借助Ajax的这股东风传播自己。而如今有些人还觉得遗憾，但也有些人感到庆幸；说遗憾，那些人会指着Rails，说：看，Rails当年就是因为借助Ajax来让更多人认识到自己的...而觉得庆幸的人，心里想：Django掌陀人当年的决定，现在得到印证了，Ajax其实就是一门新新的技术，它应该由其他组织大力发展它，让它更加独立，更加强大，更加灵活，放之四海皆准。&lt;br /&gt;
	&lt;br /&gt;
	个人觉得，Django还是继承了Python大道至简的理念，经纬分明。Ajax原本就不是Django所独有的，让它在技术领域上细分，竞争，变得更强大；这样其他程序框架会得益于Ajax，Django也会得益于Ajax；如果集成Ajax于一身，Django的Ajax会变得局限，Django的使用者看似有更好的发挥但仅仅限于Django的Ajax上。这和Django的Templates应不应该放些程序逻辑的事情有几分相似，程序员和页面设计师遇到这个问题，相信会有不同的意见，所以最后都采取了折中的解决办法。&lt;br /&gt;
	&lt;br /&gt;
	这个问题暂且不谈论，让它智者见智，仁者见仁吧。&lt;br /&gt;
	&lt;br /&gt;
	Django不会阻止我们去用Ajax，我们把所熟知某框架的Ajax用在Django也不见得是件难事，相反我们有自己的选择权，选择哪个js框架，Jquery也好，Dojo 、Scriptaculous 、Prototype 、yui-ext 、Mochikit、mootools也罢，只要我们有自己的选择标准足矣.&lt;br /&gt;
	&lt;br /&gt;
	我不是&lt;strike&gt;个&lt;/strike&gt;脚本师，偶尔看看Jquery的东西，Jquery里的内部机制原理一知半解，但我相信能在Django里用用Ajax的东西，想来Django也算厚道，照顾到我这样的人群了...^_^&lt;/p&gt;
</description>
   </item>
   
   <item>
     <title>注册，登录</title>
     <link>/blog/anly_love/Django/2010/12/24/143</link>
     <description>&lt;P&gt;&lt;BR&gt;#coding=utf-8&lt;BR&gt;from django import forms&lt;BR&gt;from django.core .urlresolvers import reverse&lt;BR&gt;from django.http import HttpResponse, HttpResponseRedirect&lt;BR&gt;from django.shortcuts import render_to_response&lt;BR&gt;from django.template import RequestContext&lt;BR&gt;from django.contrib.auth.models import User&lt;BR&gt;from django.utils.translation import ugettext_lazy as _&lt;BR&gt;from django.contrib.auth import authenticate, login as auth_login ,logout as auth_logout&lt;BR&gt;def index(request):&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;&#39;&#39;首页视图&#39;&#39;&#39;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa = &#39;&#39;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; template_var = {}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; forme=(request.POST)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if &#39;name&#39; in request.POST and request.POST[&#39;name&#39;]:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; username = request.POST[&#39;name&#39;]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password = request.POST[&#39;pwd&#39;]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.session[&#39;username&#39;] = username&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = User.objects.get(username=username)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret2 = ret.check_password(password)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # print ret2&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ret2:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return HttpResponseRedirect(reverse(&quot;welcome&quot;))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pa = &quot;用户名或密码错误&quot;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #return render_to_response(&quot;accounts/index.html&quot;,{&#39;index&#39;:index, &#39;pa&#39;:pa})&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if request.session[&#39;username&#39;]:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; username = request.session[&#39;username&#39;]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; template_var[&quot;username&quot;] = _(u&quot;欢迎您 %s!&quot;)%username&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return render_to_response(&quot;accounts/index.html&quot;,template_var)&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print forme&#39;username&#39;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return render_to_response(&quot;accounts/index.html&quot;,{&#39;index&#39;:index, &#39;pa&#39;:pa})&lt;BR&gt;def welcome(request):&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;&#39;&#39;欢迎页面&#39;&#39;&#39;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; username = request.session[&#39;username&#39;]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; template_var = {} &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; template_var[&quot;username&quot;] = username&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return render_to_response(&quot;accounts/welcome.html&quot;,template_var)&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp; # return render_to_response(&quot;accounts/welcome.html&quot;,{&#39;welcome&#39;:welcome})&lt;BR&gt;def register(request):&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;&#39;&#39;注册页面&#39;&#39;&#39;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = &#39;&#39;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = &#39;&#39;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if request.method==&quot;POST&quot;:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form=(request.POST)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if &#39;name&#39; in request.POST and request.POST[&#39;name&#39;]:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; username = request.POST[&#39;name&#39;]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password1 = request.POST[&#39;pwd1&#39;]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password2 = request.POST[&#39;pwd2&#39;]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if User.objects.filter(username=username):&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = &quot;用户名已经存在&quot;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #return HttpResponseRedirect(reverse(&quot;error&quot;))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return render_to_response(&quot;accounts/register.html&quot;,{&#39;register&#39;:register, &#39;error&#39;:error})&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if password1 == password2:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useradd = User.objects.create_user(username,password1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useradd.set_password(password1)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; useradd.save()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.session[&#39;username&#39;] = username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return HttpResponseRedirect(reverse(&quot;welcome&quot;))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = &quot;两次密码不一样&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return render_to_response(&quot;accounts/register.html&quot;,{&#39;register&#39;:register, &#39;msg&#39;:msg})&lt;BR&gt;def logout(request):&lt;BR&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;&#39;&#39;注销视图&#39;&#39;&#39;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #auth_logout(request)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #request.session.flush()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #try:&lt;BR&gt;&amp;nbsp;&amp;nbsp; # username = request.session[&#39;username&#39;]&lt;BR&gt;&amp;nbsp;&amp;nbsp; # del request.session[&#39;username&#39;]&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #except KeyError:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp; pass&lt;BR&gt;&amp;nbsp;&amp;nbsp; # return HttpResponseRedirect(reverse(&#39;index&#39;))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return HttpResponseRedirect(reverse(&#39;index&#39;))&lt;/P&gt;
&lt;P&gt;我想做一个能把用户注销掉，不知道怎么做，请高手给我添加代码并，解释一下大概引用哪些函数，模块。&lt;BR&gt;&lt;/P&gt;</description>
   </item>
   
   <item>
     <title>新手学Django</title>
     <link>/blog/anly_love/other/2010/12/19/141</link>
     <description>&lt;br&gt;刚接触这个东西，不会用，不知道从什么地方下手</description>
   </item>
   
   <item>
     <title>Django&amp;JQuery手动剪切个性头像+实例</title>
     <link>/blog/baoyalv/Django/2010/11/19/140</link>
     <description>&lt;div&gt;几个月前，尝试Django结合Jquery的jquery imgareaselect插件，对头像进行剪切。用的场合很特别，虽然用处不是很大，但有些朋友却要求提供此类应用的源码。想想，之前写的《&lt;a href=&quot;/blog/panjj/Django/2010/03/12/34&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;Django&amp;amp;JQuery手动剪切个性头像&lt;/a&gt;》主要是原理性的东西，看着很抽象，片段的代码，难免造成困惑，所以想：何不把龅牙驴的头像剪切功能抽取出来，做个独立的学习实例呢？所以今晚专门赶出来了，但是很遗憾，学习实例并不是做成通用的Django插件，让读者即插即用。因为没有插件开发方面的经验和精力，所以还是做出一个app，没有考虑太多的通用性和扩展性，旨在学习，抛砖引玉！&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;需要的朋友可以下载 &lt;a href=&quot;/media/files/PhotoCut.zip&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;源码&lt;/a&gt;，源码是完整的 project，包括静态文件的配置都全了，想学习Django静态文件配置的朋友，也可参考整个project。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;环境:Django 1.2.3+jquery.imgareaselect-0.9.3+SQLite3&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;好了，如果源码有任何问题，请文章后面回复我，或者通过&lt;a href=&quot;/microblog/taste.html5&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;龅牙闲聊&lt;/a&gt;告诉我吧！&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;应用截图：&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;/media/files/update_photo_django_jquery.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style=&quot;width:597px;&quot; src=&quot;/media/files/cut_photo_django_jquery.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style=&quot;width:597px;&quot; src=&quot;/media/files/show_photo_django_jquery.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>在Django中使用CKEditor</title>
     <link>/blog/panjj/Django/2010/11/15/139</link>
     <description>&lt;div&gt;在博客中使用富文本编辑器是很常见的，今天尝试在Django中使用比较知名的CKEditor。前提条件是通过静态文件的正确配置，可以参考之前写的《&lt;a href=&quot;http://baoyalv.com/blog/panjj/Django/2010/10/07/131&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;Django静态文件的配置&lt;/a&gt;》，今天不再累赘。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;一 前提条件：&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;1. 找到第三方支持插件：django-ckeditor&lt;/div&gt;&lt;div&gt;相关开源项目地址：https://github.com/dwaiter/django-ckeditor&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. python中安装simplejson&lt;/div&gt;&lt;div&gt;相关包地址：http://pypi.python.org/pypi/simplejson/&lt;/div&gt;&lt;div&gt;安装方法和安装其他Python第三方库是一样的（下载该包，解压，到包的目录下，执行 python setup.py install，过程中python会自动寻找依赖的类库，所以你必须能连上网络）。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;二 配置CKEditor环境&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;你可以选择把django-ckeditor安装到python里，也可以把下载的django-ckeditor作为自己的app来用。我选择后者。&lt;/div&gt;&lt;div&gt;下载的django-ckeditor，目录结构：&lt;/div&gt;&lt;div&gt;ckeditor&lt;/div&gt;&lt;div&gt;setup.py&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;把django-ckeditor里的ckeditor直接粘贴到我们的项目中，然后把该app的templates和media挪出来，整个项目的目录结构：&lt;/div&gt;&lt;div&gt;app_test #这是我特意创建的一个自己的app，作为测试用。&lt;/div&gt;&lt;div&gt;ckeditor&lt;/div&gt;&lt;div&gt;static&lt;/div&gt;&lt;div&gt;--|ckeditor&lt;/div&gt;&lt;div&gt;----|...&lt;/div&gt;&lt;div&gt;--|css&lt;/div&gt;&lt;div&gt;----|...&lt;/div&gt;&lt;div&gt;templates&lt;/div&gt;&lt;div&gt;--|ckeditor&lt;/div&gt;&lt;div&gt;__init__.py&lt;/div&gt;&lt;div&gt;manage.py&lt;/div&gt;&lt;div&gt;settings.py&lt;/div&gt;&lt;div&gt;url.py&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;整个过程就是把下载的ckeditor文件夹当成一个全新的app，熟悉的Django的就不必一一介绍了，如果你和我一样是新手，不用担心，我们教程后面有一个基本的实例 供参考。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;我们在settings.py最后一行，给ckeditor写一些配置：&lt;/div&gt;&lt;div&gt;CKEDITOR_CONFIGS = {&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&#39;default&#39;: {&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;toolbar&#39;:[ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Source&#39;,&#39;-&#39;,&#39;Save&#39;,&#39;NewPage&#39;,&#39;Preview&#39;,&#39;-&#39;,&#39;Templates&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Cut&#39;,&#39;Copy&#39;,&#39;Paste&#39;,&#39;PasteText&#39;,&#39;PasteFromWord&#39;,&#39;-&#39;,&#39;Print&#39;,&#39;SpellChecker&#39;,&#39;Scayt&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Undo&#39;,&#39;Redo&#39;,&#39;-&#39;,&#39;Find&#39;,&#39;Replace&#39;,&#39;-&#39;,&#39;SelectAll&#39;,&#39;RemoveFormat&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Form&#39;,&#39;Checkbox&#39;,&#39;Radio&#39;,&#39;TextField&#39;,&#39;Textarea&#39;,&#39;Select&#39;,&#39;Button&#39;, &#39;ImageButton&#39;,&#39;HiddenField&#39;],&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Bold&#39;,&#39;Italic&#39;,&#39;Underline&#39;,&#39;Strike&#39;,&#39;-&#39;,&#39;Subscript&#39;,&#39;Superscript&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;NumberedList&#39;,&#39;BulletedList&#39;,&#39;-&#39;,&#39;Outdent&#39;,&#39;Indent&#39;,&#39;Blockquote&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;JustifyLeft&#39;,&#39;JustifyCenter&#39;,&#39;JustifyRight&#39;,&#39;JustifyBlock&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Link&#39;,&#39;Unlink&#39;,&#39;Anchor&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Image&#39;,&#39;Flash&#39;,&#39;Table&#39;,&#39;HorizontalRule&#39;,&#39;Smiley&#39;,&#39;SpecialChar&#39;,&#39;PageBreak&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Styles&#39;,&#39;Format&#39;,&#39;Font&#39;,&#39;FontSize&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;TextColor&#39;,&#39;BGColor&#39;], &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&#39;Maximize&#39;,&#39;ShowBlocks&#39;,&#39;-&#39;,&#39;About&#39;] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;],&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;width&#39;: 650,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;height&#39;: 200,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;toolbarCanCollapse&#39;: False,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;},&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&#39;simple_toolbar&#39;: {&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;toolbar&#39;: [&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[ &#39;Bold&#39;, &#39;Italic&#39;, &#39;Underline&#39; ],&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;],&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;width&#39;: 650,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;height&#39;: 50,&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}, &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;一个是默认的配置，几乎是ckeditor的全部功能，一个是简单的配置，仅仅提供几个再简单不过的功能。更具体的配置参考CKEditor官方网站吧。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;三 使用CKEidor&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;涉及到表单控件的，我们习惯使用Django的forms。&lt;/div&gt;&lt;div&gt;我们在app_test里定义了一个forms类&lt;/div&gt;&lt;div&gt;#coding=utf-8&lt;/div&gt;&lt;div&gt;from django import forms&lt;/div&gt;&lt;div&gt;from ckedj.ckeditor.widgets import CKEditor #ckedj是定义的项目名&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;class BlogPostForm(forms.Form):&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;title = forms.CharField()&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;# This field will render as a CKEditor with the &#39;simple_toolbar&#39; config.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;subtitle = forms.CharField(widget=CKEditor(ckeditor_config=&#39;simple_toolbar&#39;))&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;# This field will render as a CKEditor with the &#39;default&#39; config.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;body = forms.CharField(widget=CKEditor())&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;代码里，subtitle使用简易的配置，而body使用了默认的。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在html文件中，注意要引用CKEditor的初始化脚本（前提是保证静态文件能成功解析哦，django-ckeditor说明文档中没有这个说明，所以过程中折腾了半天，别说我不提醒你...）,初始化脚本&lt;span style=&quot;color: rgb(255, 0, 0); &quot;&gt;ckeditor.js&lt;/span&gt;在ckeditor/ckeditor下。废话少说，看代码，如：&lt;/div&gt;&lt;div&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;html&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;head&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Page Title&amp;lt;/title&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color:#FF0000;&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;/site_media/ckeditor/ckeditor/ckeditor.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/head&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;body&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;form&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{{form.as_table}}&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/table&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/form&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/body&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/html&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;这样就能在Django中正常使用CKEditor了。如图：&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;/media/files/ckedj.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;最后附加个例子&amp;nbsp;供学习用途，欢迎童鞋来交流！&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;例子&lt;a href=&quot;/media/files/ckedj.zip&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;下载&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(完)&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>Windows7安装Postgresql 8.4以上版本出错解决办法</title>
     <link>/blog/baoyalv/other/2010/11/09/138</link>
     <description>在Vista或者Windows7上安装Postgresql 8.4或者Postgresql 9.0，到了最后的关头总是出错！提示错误信息是：database cluster initialization failed。也许很沮丧吧？但是看一下错误，就知道为什么了？今天来解决PostgreSql不能安装的问题：&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;首先安装进度到了选择database cluster的时候，不要选择默认的选项：Default locale；随便选一个，推荐选择english en-us。然后一路安装过去，就能成功了。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;网络上说是权限问题，本人无从考证，如果以上设置还是没有安装成功的时候，你可以到安装遗留目录postgresql上，将此目录的权限赋给所有人，也就是everyone。最后把控制面板中的 User Account Control settings（UAC）的安全级别关闭，再试试。&lt;/div&gt;&lt;div&gt;（完）&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>Windows7+Nginx+Flup（FastCGI）+Django</title>
     <link>/blog/panjj/other/2010/11/07/137</link>
     <description>上回记录了Windows7配置了Nginx环境，这回让Django跑在Nginx上。之前是需要点理论知识沉淀的；建议之前看看：&lt;a href=&quot;http://www.fresh3g.org/blog/post/346/&quot;&gt;http://www.fresh3g.org/blog/post/346/&lt;/a&gt;&amp;nbsp;感觉写的很详细。下面是根据那些理论知识去尝试配置环境：&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;首先我们要做的是：安装及配置Django，Nginx和Flup；Django和Nginx环境配置不再累赘。请参考：&lt;a href=&quot;http://baoyalv.com/blog/baoyalv/Django/2010/02/03/4&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://baoyalv.com/blog/baoyalv/Django/2010/02/03/4&lt;/a&gt;和&lt;a href=&quot;http://baoyalv.com/blog/panjj/other/2010/11/07/136&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://baoyalv.com/blog/panjj/other/2010/11/07/136&lt;/a&gt;；&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;安装Flup,到官网上&lt;a href=&quot;http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz&lt;/a&gt;下载，解压后发现是python写的类库，把它安装到python里，安装方法和其他的python类库一样做法，在doc命令行里执行：&lt;/div&gt;&lt;div&gt;python setup.py install &amp;nbsp;#注意要求python写到path里，才能有python命令&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;过程中可能需要联机，因为安装的过程中需要下载一些相关的东西。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;接下来，&lt;/div&gt;&lt;div&gt;1.配置Nginx,配置文件见以下代码：&lt;/div&gt;&lt;div&gt;&lt;div&gt;worker_processes 1;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;events {&lt;/div&gt;&lt;div&gt;worker_connections 64;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http {&lt;/div&gt;&lt;div&gt;include mime.types;&lt;/div&gt;&lt;div&gt;default_type application/octet-stream;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;sendfile on;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;keepalive_timeout 65;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;server {&lt;/div&gt;&lt;div&gt;listen 80;&lt;/div&gt;&lt;div&gt;server_name 127.0.0.1;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;root /cygdrive/G/myproject/;&lt;/div&gt;&lt;div&gt;index index.html index.htm;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;charset utf-8;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# 静态资源&lt;/div&gt;&lt;div&gt;location ~ ^/static/&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;expires 30d;&lt;/div&gt;&lt;div&gt;break;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;location / {&lt;/div&gt;&lt;div&gt;# 指定 fastcgi 的主机和端口&lt;/div&gt;&lt;div&gt;fastcgi_pass 127.0.0.1:9001;&lt;/div&gt;&lt;div&gt;fastcgi_param REMOTE_ADDR $remote_addr;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;fastcgi_param PATH_INFO $fastcgi_script_name;&lt;/div&gt;&lt;div&gt;fastcgi_param REQUEST_METHOD $request_method;&lt;/div&gt;&lt;div&gt;fastcgi_param QUERY_STRING $query_string;&lt;/div&gt;&lt;div&gt;fastcgi_param CONTENT_TYPE $content_type;&lt;/div&gt;&lt;div&gt;fastcgi_param CONTENT_LENGTH $content_length;&lt;/div&gt;&lt;div&gt;fastcgi_param SERVER_PROTOCOL $server_protocol;&lt;/div&gt;&lt;div&gt;fastcgi_param SERVER_PORT $server_port;&lt;/div&gt;&lt;div&gt;fastcgi_param SERVER_NAME $server_name;&lt;/div&gt;&lt;div&gt;fastcgi_pass_header Authorization;&lt;/div&gt;&lt;div&gt;fastcgi_intercept_errors off;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;error_page 500 502 503 504 /50x.html;&lt;/div&gt;&lt;div&gt;location = /50x.html {&lt;/div&gt;&lt;div&gt;root html;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;建议备份好原来的配置文件，然后再覆盖nginx文件。&lt;/div&gt;&lt;div&gt;该配置文件只是实验用，连log都没有写，想了解更详细的文档，参考官方文档：&lt;a href=&quot;http://wiki.nginx.org/DjangoFastCGI&quot;&gt;http://wiki.nginx.org/DjangoFastCGI&lt;/a&gt;&lt;/div&gt;&lt;div&gt;现在列出关键的几个地方：&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;server {&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;listen 80; #首先让Nginx跑在Windows的80端口上：&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;server_name 127.0.0.1;#写上project对应的域名 我们在本地上测试，所以是127.0.0.1&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;root /cygdrive/G/myproject/;#项目的根目录，在windows下，如果是G盘，写上/cygdrive/G/,依次类推。切忌不要写成G：\myproject\&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;location ~ ^/static/ #静态文件指向，我们直接指向项目根目录的static文件夹，根据实际情况正确指向&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;fastcgi_pass 127.0.0.1:9001;#我们通过fastgci（flup）在9001端口上跑django项目&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;fastcgi_param REMOTE_ADDR $remote_addr;#加上这行，是因为django request用到获取真实ip的的属性，&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;关键的地方都一一说明了，检查配置都写对后，重启Nginx,(记得任务栏里关掉全部nginx进程再重启)&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;2 通过fastgci run django&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;在doc里进入django项目的根目录，启动：&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;manage.py runfcgi method=threaded host=127.0.0.1 port=9001&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;也可以编写指令，方面启动：&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;在项目的根目录下新建 一个vbs文件run：&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;set ws=wscript.createobject(&amp;quot;wscript.shell&amp;quot;)&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;ws.run &amp;quot;manage.py runfcgi method=threaded host=127.0.0.1 port=9001&amp;quot;,0&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;以后每次启动，双击run文件即可。&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;现在在浏览器上，输入：127.0.0.1&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; &quot;&gt;是不是看到页面跑起来了？？&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>Windows上安装Nginx注意事项</title>
     <link>/blog/panjj/other/2010/11/07/136</link>
     <description>本来想在windows7上安装Nginx，然后部署Django的，过程中遇到了一些小问题，所以都记录下来!供以后查阅！几个细节的东西，有必要写清楚！&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;官网上下载地址：&lt;a href=&quot;http://nginx.org/en/download.html&quot;&gt;http://nginx.org/en/download.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;就那最新的版本做实验吧。我下了 windows原生版本 &lt;a href=&quot;http://nginx.org/download/nginx-0.8.53.zip&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;0.8.53&lt;/a&gt;，整个文件就是一个zip压缩文件。下载到C盘的根目录下，解压缩。出来的文件夹是nginx-0.8.53，顺便改成了nginx，方便使用（其实改不改都没有关系，改了，是因为重启nginx的时候，少打点字母罢了）。然后冲动的进入文件夹，双击启动文件nginx.exe，弹出了一个doc窗口，就在眨眼的功夫里，消失了，没有看清提示什么内容；不管三七二十一，我在浏览器了，打开127.0.0.1，提示&amp;nbsp;无法显示页面。我们没有安装IIS7，如果是无法显示页面，说明nginx启动失败了。但是到底是什么原因让nginx无法启动呢？&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;我想个办法，放doc的提示显示出来，结果提示是：&lt;/div&gt;&lt;div&gt;[emerg]:bind() to 0.0.0.0:80 failed &amp;lt;10013: An attempt was made to access a socket in a way forbidden by its access permissions&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;看提示信息，是因为windows 的80 端口被占用了，所以又想办法把80端口释放了，最终还是没有释放成功，windows把80端口保留给最底层的进程用了，释放80端口行不通，又想别的招。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;然后安装了IIS7,这时80端口自然就分配给IIS7了。IIS安装成功，然后把停止IIS7的运行，自然80端口就被闲置了。果真如上所说，80端口真的被释放了。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;然后双击nginx.exe来启动nginx，这回没有提示信息了，打开浏览器 127.0.0.1:80；呵呵，nginx终于正常运行。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;为什么要nginx运行在80端口上呢？因为本人想让nginx作为代理服务和前端服务。域名指向到服务器的ip的时候，直接就找到nginx。所以周折了一番。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;在配置django环境的时候，有遇到了问题。我明明修改了nginx.conf的参数了，在重新启动的时候，都是无效的，很是郁闷，所以django环境配置无法配置成功了。仔细检查了配置文件的语法错误，发现了一些错误，修改过来了，仍然无效，干脆恢复原来的配置文件，还是老样子，这么一来就奇怪了。压根重启是无效的。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;官方的文档很清楚：&lt;/div&gt;&lt;div&gt;&lt;div&gt;nginx -s stop&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;quick exit&lt;/div&gt;&lt;div&gt;nginx -s quit&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;graceful quit&lt;/div&gt;&lt;div&gt;nginx -s reload&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt; changing configuration, starting a new worker, quitting an old worker gracefully&lt;/div&gt;&lt;div&gt;nginx -s reopen&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;reopening log files&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;就这么几行命令，执行后，一切都正常，就是没有效果。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;最后想到办法，打开windows的任务管理器，把nginx的几个进程都关闭了，启动nginx，终于看到想要的效果了。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;nginx对windows的支持还不算很好，有些东西还是很折腾。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>Ubuntu下安装MySQL</title>
     <link>/blog/panjj/other/2010/10/22/134</link>
     <description>Linux新手，常常为现在源码 编译 安装感到迷茫，今天在Ubuntu官方上找到简易安装MySQL的方法，以便以后配置开发环境做备忘录.以下是通过Ubuntu的终端通过远程源来安装MySQL。之前最好更改系统的源为中国源，&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;1 更改到中国源&lt;/b&gt;&lt;/div&gt;&lt;div&gt;系统的顶端菜单 &amp;nbsp;系统--更新管理器--（底下左边）设置（输入管理员root密码）--Ubuntu软件--下载自 &amp;lt;选择&amp;gt; 其他站点--中国的 mirrors.163.com(根据你使用的带宽来选择吧)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;2 安装MySQL&lt;/b&gt;&lt;/div&gt;&lt;div&gt;要安装 MySQL，可以在终端提示符后运行下列命令：&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;sudo apt-get install mysql-server mysql-client #中途会让你输入一次root用户密码&lt;/div&gt;&lt;div&gt;sudo apt-get install php5-mysql &amp;nbsp;#安装php5-mysql 是将php和mysql连接起来&lt;/div&gt;&lt;div&gt;一旦安装完成，MySQL 服务器应该自动启动。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;sudo start mysql #手动的话这样启动&lt;/div&gt;&lt;div&gt;sudo stop mysql #手动停止&lt;/div&gt;&lt;div&gt;当你修改了配置文件後，你需要重启 mysqld 才能使这些修改生效。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;要想检查 mysqld 进程是否已经开启，可以使用下面的命令：&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;pgrep mysqld&lt;/div&gt;&lt;div&gt;如果进程开启，这个命令将会返回该进程的 id。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3 文件结构&lt;/b&gt;&lt;/div&gt;&lt;div&gt;MySQL配置文件：/etc/mysql/my.cnf ，其中指定了数据文件存放路径&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;datadir &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = /var/lib/mysql&lt;/div&gt;&lt;div&gt;如果你创建了一个名为 test 的数据库，那么这个数据库的数据会存放到 /var/lib/mysql/test 目录下。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;4 进入MySQL&lt;/b&gt;&lt;/div&gt;&lt;div&gt;mysql -uroot -p&amp;nbsp;&lt;/div&gt;&lt;div&gt;(输入mysql的root密码)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;baoyalv@ubuntu:~$ mysql -u root -p&lt;/div&gt;&lt;div&gt;Enter password:&amp;nbsp;&lt;/div&gt;&lt;div&gt;Welcome to the MySQL monitor. &amp;nbsp;Commands end with ; or \g.&lt;/div&gt;&lt;div&gt;Your MySQL connection id is 37&lt;/div&gt;&lt;div&gt;Server version: 5.1.41-3ubuntu12.3 (Ubuntu)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;mysql&amp;gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;修改 MySQL 的管理员密码：&lt;/div&gt;&lt;div&gt;sudo mysqladmin -u root password newpassword&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;5 简单的操作&lt;/b&gt;&lt;/div&gt;&lt;div&gt;显示数据库：&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;mysql&amp;gt; show databases;&lt;/div&gt;&lt;div&gt;+--------------------+&lt;/div&gt;&lt;div&gt;| Database &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/div&gt;&lt;div&gt;+--------------------+&lt;/div&gt;&lt;div&gt;| information_schema |&lt;/div&gt;&lt;div&gt;| mysql &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/div&gt;&lt;div&gt;+--------------------+&lt;/div&gt;&lt;div&gt;2 rows in set (0.00 sec)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;6 phpmyadmin管理&lt;/b&gt;&lt;/div&gt;&lt;div&gt;用随便一个支持PHP的web服务器（如Apache、Nginx、Lighttpd），下载phpmyadmin，装之。&lt;/div&gt;&lt;div&gt;sudo apt-get install phpmyadmin &amp;nbsp;#注意这是安装到/usr/share/phpmyadmin&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>比较Perl、PHP、Python、Java和Ruby</title>
     <link>/blog/baoyalv/other/2010/10/13/133</link>
     <description>&lt;div&gt;！预览&lt;/div&gt;&lt;div&gt;语言的发展趋势一定是动静结合、刚柔并济&lt;/div&gt;&lt;div&gt;Perl凝练晦涩，Python优雅明晰，Ruby精巧灵动，PHP简明单纯&lt;/div&gt;&lt;div&gt;或许优雅正是来自对细节和规范的重视&lt;/div&gt;&lt;div&gt;（RoR）与Ruby结合之后，便如一只猱身而上灵猫，立刻衬托出Java和.NET大象般的身影&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;？提问&lt;/div&gt;&lt;div&gt;Perl、Python、Ruby和PHP各自有何特点？&lt;/div&gt;&lt;div&gt;为什么动态语言多作为轻量级的解决方案？&lt;/div&gt;&lt;div&gt;LAMP为什么受欢迎？&lt;/div&gt;&lt;div&gt;Ruby on Rails为什么会流行？&lt;/div&gt;&lt;div&gt;编程语言的发展趋势是什么？&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;：讲解&lt;/div&gt;&lt;div&gt;“剩下四种动态语言，我们将之归为后台脚本语言。”冒号说着画了张图表——&lt;/div&gt;&lt;div&gt;引号听得仔细：“我记得您开始是把这些语言划分为C族静态语言、非C族静态语言和动态语言三类的。”&lt;/div&gt;&lt;div&gt;冒号解释：“那是按语法来划分的，偏重理论；现在是按应用来划分，偏重实践。”&lt;/div&gt;&lt;div&gt;句号旋即联想到：“这种分法貌似三层架构——前台语言对应表现层；平台语言和后台脚本语言对应业务逻辑层；系统语言对应数据层。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;“的确有几分神似，但千万不可混淆。”冒号提醒道，“三层架构（three-layer architecture）是模块设计上的逻辑划分[1]；而这里是按语言应用范围进行的物理划分——与用户交互的是前台语言，与机器交互的是系统语言，介于其中的为前台提供服务同时又需要底层系统服务的是后台语言。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;逗号询问：“后台语言又细分成平台语言与后台脚本语言？”&lt;/div&gt;&lt;div&gt;“这是基于程序（program）与脚本（script）、静态与动态而分的。”冒号进行说明，“其实Perl，PHP，Python和Ruby都有自己的虚拟机（virtual machine），从这种意义上说它们也可作为平台语言。但在实际应用中，它们没有Java平台和.NET平台那种整合凝聚力和核心作用，通常作为轻量级的解决方案。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;问号想探个究竟：“这是由于它们都是动态语言的缘故吗？”&lt;/div&gt;&lt;div&gt;冒号回答：“理论上动态语言同样能承担大型应用，但实践上它们多作为粘合语言或用于中小型应用。用句时髦的话来形容，暂时还是主流的配角或非主流的主角。毕竟在运行效率、类型安全、可用资源、开发工具、技术支持等方面，它们与Java、C#相比尚有一定差距。另外它们同属‘草根’语言，虽有开源社区的大力支持，在影响力上与后者未可同日而语。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;叹号揣测：“说不定在不久的将来，动态语言也会成为主流的主角。”&lt;/div&gt;&lt;div&gt;“世易时移，殊难逆料。但有一点可以肯定，语言的发展趋势一定是动静结合、刚柔并济。”冒号断言，“一方面以Java和C#为代表的静态语言中嫁接了动态语言的枝条；另一方面以Java和.NET为代表的平台与动态语言的交壤地带也在逐步扩大。比如JRuby允许Ruby与Java之间互相调用，类似的还有Jython、IronRuby、IronPython等等。此外值得一提的是，动态语言最活跃的舞台当数LAMP，L-A-M-P。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;引号接茬：“L是Linux，A是Apache，M是MySQL，P是PHP。这四大组件形成了一个完整的开源网络开发平台。”&lt;/div&gt;&lt;div&gt;冒号补充道：“P也可指Perl、Python，甚至Ruby。”&lt;/div&gt;&lt;div&gt;逗号调侃：“可惜Ruby的‘R’比‘P’多了一根尾巴。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;“有人为了自圆其说，干脆让P表示‘Programming language’，这下所有语言都囊括其中了。老外就喜欢玩这种首字母缩略（acronym）的文字游戏，尤其LAMP正好还有‘灯’的含义，寓意开源世界的一盏明灯，他们一定更得意了。”冒号语带调笑，“前面我们曾提及，网络应用是生长动态语言最肥沃的土壤，而LAMP就是这块土壤上搭建的平台。作为网络平台，LAMP以其开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等特色而与Java平台和.NET平台鼎足三分，尤其受中小企业的欢迎。LAMP中Linux是操作系统，Apache是Web服务器，MySQL是数据库系统，而我们当下最关心的是‘P族语言’：PHP、Perl、Python还有Ruby。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;问号建议：“作为动态语言，它们的共性上节课已经谈了不少，能说说它们的个性吗？”&lt;/div&gt;&lt;div&gt;“它们的个性极为鲜明：Perl凝练晦涩，Python优雅明晰，Ruby精巧灵动，PHP简明单纯。先看老大哥Perl，它博采众家之长，综合了C语言的结构、sed的正则表达式、AWK的关联数组（associative array）、Lisp的表（list）和Unix Shell的命令，此外还有借鉴了一种语言，你们知道是哪种吗？”冒号忽然卖了个关子。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;逗号猜想：“应该是某种OOP语言吧。”&lt;/div&gt;&lt;div&gt;“Perl中确有不少C++的影子，但它的对象模型在5.0以后才引入，典型的半路出家，远不如前面的特征那么自然。与其说是一种自然而然的发展，不如说是在OOP潮流裹挟下的一种身不由己的迎合。真正深入骨髓的借鉴是自然语言。”冒号给出了答案，“我们提过，Perl的发明者Larry Wall是一名语言学家，他认为程序语言应该与自然语言一样，简洁自然、易读易写、表达多样、不拘一格。Perl还有不少的格言或哲学，使得编程语言一改严谨刻板的面孔，散发出浓郁的人文气息。”&lt;/div&gt;&lt;div&gt;叹号幽了一默：“我见过Perl的代码，人文气息没闻出来，但我怀疑有乙醚气息——看一会就觉得晕晕乎乎的。”&lt;/div&gt;&lt;div&gt;众人大笑。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;“有人仅用一行Perl代码就实现了RSA算法，你看了那还不得当场晕倒啊？”冒号打趣道，“Perl的各种魔符好似一把把锋利的剪刀，做起文本裁剪之类的工作来游刃有余。这是它最大的长处，当初Perl就是Wall用来做Unix系统管理的，以后在CGI上的广泛应用也得益于此。这也赋予Perl极强的粘合力，因而有‘internet上的胶带（duct tape）[2]’的说法。它又号称瑞士军刀，精练而复杂，实用而强大。但Perl过于灵活自由，缺乏规范，影响了程序的可读性、一致性、整洁性和可维护性。不熟悉该语言的固然如读天书，熟悉语言而不熟悉问题的也颇费思量。相比之下Python被认为是Perl有力的挑战者，不仅在于它天然的OO设计和丰富的类库，更重要的是它对程序员友好度大大超过Perl。Python也有一系列的被称为禅（Zen）的哲学，不少与Perl是针锋相对的。比如：Perl认为做一件事可以有多种方法，而Python认为一件事应该最好只有一种方法；Perl追求语言的表现力，Python追求简单优雅；Perl喜欢隐性暗示，Python强调显性明示；Perl强调紧凑，Python强调松散； Perl的语法和语义丰富，Python的语法和语义简单而类库丰富。或许Python最让人不习惯的是它对空白符敏感性。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;引号感到惊奇：“对空白符敏感？这个倒真怪异。”&lt;/div&gt;&lt;div&gt;冒号见惯不怪：“虽然有点违反习惯，但非常符合Python一贯的规范简洁的风格——一方面从语法上保证了良好的编码风格；另一方面，每个代码块不再需要起始的大括号或begin/end之类的，减少了的代码行数。顺便插一句，另外一种优雅的语言Haskell同样对空白符敏感，或许优雅正是来自对细节和规范的重视吧。此外许多人抱怨Python中的自引用self太多，殊不知这也是它倡导显式表达的一种体现。总的看来，Python主要的问题还是在性能效率上不尽如人意。”&lt;/div&gt;&lt;div&gt;叹号好奇地问：“Ruby怎么样？据说它将取代Java。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;“不要轻言‘取代’二字。”冒号规诫道，“Java没有取代C++，也不会被Ruby取代，至多只是一种再分配。不过Ruby的确是门很可爱的语言，兼具Perl的表现力和Python的可读性。Ruby背后最具特色的理念是：关注程序员使用语言时的感受超过语言本身的功能。通俗地说，兵器的称手比锋利更重要；文雅地说，应给予程序员更多的人文关怀。就拿代码块（block）和迭代器（iterator）来说，虽然均非Ruby首创，但其语法最为赏心悦目。类似的例子比比皆是。Ruby的元编程能力特别强，也是它高度灵活的一种体现，但并不是所有人都喜欢这种风格。Ruby的主要弱点有两个：一个与Python类似，在性能上还有待提高；另一个是它的线程由用户空间（user space）而不是内核空间（kernel space）来管理[3]，不能充分利用多核或多CPU。真正让Ruby变得炙手可热的是web应用框架 Ruby on Rails（RoR）的成功，它们还催生了Java平台上的Groovy语言和Groovy on Grails框架。RoR奉行的CoC（Convention over Configuration）和DRY（Don&#39;t repeat yourself ）原则以及MVC架构看似了无新意，但与Ruby结合之后，便如一只猱身而上灵猫，立刻衬托出Java和.NET大象般的身影。”&lt;/div&gt;&lt;div&gt;逗号有些怀疑：“框架竟然捧红了语言，框架真有这么重要吗？”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;“如果web应用中动态页面较少或业务逻辑不复杂，框架的价值并不大。以前CGI编程就是往Perl之类的代码中嵌入HTML代码，如同Java中的Servlet；PHP则单纯地在HTML代码中插入PHP代码，如同早期的JSP。没有MVC，也不管什么三层架构，更没有ORM。但是——”冒号拖了个转折音，“一旦业务逻辑变得复杂，开发人员增多，手工作坊式编程开始捉襟见肘，引入框架这个流水生产线来提高生产力便是大势所趋。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;句号不解：“我想Perl、Python和PHP一定也有不少框架，Java中的框架更是泛滥成灾，何以独独RoR脱颖而出？”&lt;/div&gt;&lt;div&gt;冒号作出分析：“正值web2.0和敏捷开发（agile development）的概念流行之际，RoR将AJAX与Ruby组合在一起成为绝佳的回应。以前各种web应用框架是不少，但在RoR之前轻量级套餐式解决方案并不多。Perl中的Catalyst、Python中的Pylon还有PHP中的CakePHP等应是效仿之作。因此RoR出现的时机可说是不早不晚，正当其时。此外，Perl和PHP由于过于流行，反而有不少的历史包袱，人们习惯了将表示逻辑和业务逻辑编织在一起。至于Java企业解决方案，框架太多，搭配组合更多，增加了选择的难度。即使采用最常见的轻量级SSH（Struts+Spring+Hibernate）组合，维护起来也比RoR繁杂得多。”&lt;/div&gt;&lt;div&gt;叹号愈发担忧：“听这意思，Java还是危险啊！”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;“言之过早。”冒号不以为然，“首先RoR还有待进一步检验，目前无论是应用广度还是深度上尚无法与Java相提并论；其次Java在性能、安全等方面还是有不少优势，而这些对于大型和关键性的应用来说尤为重要。即使在中小型web应用中，RoR较之PHP还远为不及。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;问号接下话题：“PHP为何如此流行？”&lt;/div&gt;&lt;div&gt;“因为它简单、专一。”冒号答得很干脆，“与Python和Ruby一开始就定位通用语言不同，PHP是专为网络而生的。同早期的Perl相似，PHP起初主要起文本过滤器的作用，只不过Perl多处理文件流（file stream），而PHP多处理套接字流（socket stream）。PHP的语法简单，且为网络应用度身定造，受到网络开发人员的追捧当在情理之中。它虽很实用很流行，但并不完美。比如：变量名大小写敏感而函数名大小写不敏感；函数命名规则不一致；不支持namespace和unicode[4]；与Perl一样，它的对象模型不是先天的，直到PHP 5才真正完善；对线程支持不足；相比Perl、Python和Ruby，它的功能稍显单薄等等。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;引号突然想起：“我记得您在第一堂课提到PHP还能用于桌面应用。”&lt;/div&gt;&lt;div&gt;“不仅PHP，Perl、Python还有Ruby，都能作为前台语言来开发命令行或图形界面的应用。同样地，VB、Delphi和JavaScript也能作为后台语言。现代的程序语言既有自己的专长，又向通用化和全能化发展，以争取更多的生存空间。试想一下，现代的程序员又何尝不是如此呢？”言及于此，冒号收住话题，“语言简评告一段落，还有不少既有趣又有用的语言，在此就不一一评说了。我们看到，每种编程语言都有其独特的惯例用法和哲学理念，它们与编程范式一道形成了语言的编程风格。体悟愈深者编程语感愈强，思维与语言愈交融无碍，渐从必然王国走向自由王国。”&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;逗号满怀憧憬：“那是不是一种人剑合一的境界？”&lt;/div&gt;&lt;div&gt;“或许人器合一更准确吧，程序员可不能只会一种兵器哟。”冒号故意抠他的字眼，“现在请大家每人写一句对本节课的感言。”&lt;/div&gt;&lt;div&gt;众人沉思片刻，齐齐挥笔而就——&lt;/div&gt;&lt;div&gt;叹号——没有最好的语言，只有最合适的语言。&lt;/div&gt;&lt;div&gt;逗号——没有糟糕的语言，只有糟糕的程序员。&lt;/div&gt;&lt;div&gt;问号——没有一种语言是万能的，只会一种语言是万万不能的。&lt;/div&gt;&lt;div&gt;引号——废除对语言的宗教信仰，建立对语言的哲学思维。&lt;/div&gt;&lt;div&gt;句号——编程就是在人脑和电脑之间寻找最佳平衡点的过程。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;冒号读罢大悦，顺手一掌拍出五记马屁：“精彩之极！可谓字字珠玑、句句联璧啊。兹决定，给诸位的奖赏是——立时下课！”&lt;/div&gt;&lt;div&gt;众人欣然领赏而去。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;插语&lt;/div&gt;&lt;div&gt;[1] 有两种三层架构，一种是three-layer architecture，一种是three-tier architecture。它们经常换用，但其实是有分别的：前者仅仅在逻辑进行划分，而后者在物理上也进行了划分——不同层次的模块运行在不同的主机上。&lt;/div&gt;&lt;div&gt;[2] 不少地方译作‘输送带’、‘传送带’，因为duct有‘输送管’、‘导管’之意，于是想当然地认为这表明Perl在internet上起着输送作用。殊不知‘duct type’专指一种万能的粘性极强的胶带，用以比喻Perl的粘合力。&lt;/div&gt;&lt;div&gt;[3] 这类线程被称为绿色线程（green thread），也称伪线程。据称Ruby2.0将支持原生线程（native thread）。&lt;/div&gt;&lt;div&gt;[4] PHP将在5.3.0支持namespace，将在6.0支持unicode。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;总结&lt;/div&gt;&lt;div&gt;比起Java平台和.NET平台，动态语言轻便灵活、开发效率高，但整合凝聚力还不够，在运行效率、类型安全、可用资源、开发工具、技术支持以及影响力等方面也有一定差距，故通常作为轻量级的解决方案。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;LAMP是由Linux、Apache、MySQL和包括PHP、Perl、Python或Ruby在内的脚本语言组成的网络开发平台，具有开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优点。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Perl精练、复杂、强大、灵活、自由、隐晦、表现力强，但规范性、可读性、一致性、整洁性和可维护性较差。&lt;/div&gt;&lt;div&gt;Python优雅规范、简洁明晰、易学易用、类库丰富，但效率稍差，有些人不喜欢它对空白符敏感的特性。&lt;/div&gt;&lt;div&gt;Ruby语法精巧、高度灵活，兼具Perl的表现力和Python的可读性，尤其注重程序员的感受，但其性能和线程模型尚有待改进。&lt;/div&gt;&lt;div&gt;PHP简单、专一、实用、流行，在但相比其他三种语言，在语法和功能上稍有欠缺。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;RoR是一种轻量级套餐式的web应用解决方案，是友好的设计（MVC架构和CoC、DRY原则）加上好的语言（Ruby）在好的时机（web2.0和敏捷开发风行之际）打造出的好的框架。&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;静态语言与动态语言从语言特征到运行环境都在逐渐融合。程序员应该与程序语言一样，既要有自己的专长，又要向通用化和全能化发展。编程语言惯例用法、哲学理念和编程范式形成了语言的编程风格。&lt;/div&gt;</description>
   </item>
   
   <item>
     <title>在Heroku建立一个App遇到问题解决办法</title>
     <link>/blog/baoyalv/Rails/2010/10/09/132</link>
     <description>&lt;div&gt;heroku建立app的时候，首先需要git和ssh，sudo apt-get install git-core &amp;nbsp;sudo apt-get install ssh 执行了两条ubuntu命令后，算是顺利完成安装了。&lt;/div&gt;&lt;div&gt;gem install heroku 安装heroku之后，要建立一个app；heroku create，帐号认证,&lt;/div&gt;&lt;div&gt;竟然出现错误：&lt;/div&gt;&lt;div&gt;No ssh public key found in /home/***（计算机名）/.ssh/id_[rd]sa.pub. &amp;nbsp;You may want to specify the full path to the keyfile.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;帐号没有错，刚刚在heroku上激活的，而且我也已经生成了ssh key ，输入ssh-keygen -t rsa 后,认认真真输入key和pass..最后出来的数字码和随机图，都没有什么异常。但到了建立app的时候，死活进不去，出来总是：&lt;/div&gt;&lt;div&gt;No ssh public key found in /home/***（计算机名）/.ssh/id_[rd]sa.pub. &amp;nbsp;You may want to specify the full path to the keyfile.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;正在纳闷的时候，重新生成ssh key；不经意没有输入key和pass，ssh-keygen -t rsa 一路回车，同样也生成了shh 数字码和随机图，建立app的时候意外的成功了！玄乎....&lt;/div&gt;</description>
   </item>
   

 </channel>
</rss>