老师讲课博客目录【必发365】

http://www.bootcdn.cn/bootstrap/  bootstrap cdn在线地址

对Python的Django框架中的项目进行单元测试的方法,pythondjango

 Python中的单元测试

我们先来回顾一下Python中的单元测试方法。
下面是一个 Python的单元测试简单的例子:

假如我们开发一个除法的功能,有的同学可能觉得很简单,代码是这样的:

def division_funtion(x, y):
  return x / y

但是这样写究竟对还是不对呢,有些同学可以在代码下面这样测试:

def division_funtion(x, y):
  return x / y


if __name__ == '__main__':
  print division_funtion(2, 1)
  print division_funtion(2, 4)
  print division_funtion(8, 3)

但是这样运行后得到的结果,自己每次都得算一下去核对一遍,很不方便,Python中有
unittest
模块,可以很方便地进行测试,详情可以文章最后的链接,看官网文档的详细介绍。

下面是一个简单的示例:

import unittest


def division_funtion(x, y):
  return x / y


class TestDivision(unittest.TestCase):
  def test_int(self):
    self.assertEqual(division_funtion(9, 3), 3)

  def test_int2(self):
    self.assertEqual(division_funtion(9, 4), 2.25)

  def test_float(self):
    self.assertEqual(division_funtion(4.2, 3), 1.4)


if __name__ == '__main__':
  unittest.main()

我简单地写了三个测试示例(不一定全面,只是示范,比如没有考虑除数是0的情况),运行后发现:

F.F
======================================================================
FAIL: test_float (__main__.TestDivision)
----------------------------------------------------------------------
Traceback (most recent call last):
 File "/Users/tu/YunPan/mydivision.py", line 16, in test_float
  self.assertEqual(division_funtion(4.2, 3), 1.4)
AssertionError: 1.4000000000000001 != 1.4

======================================================================
FAIL: test_int2 (__main__.TestDivision)
----------------------------------------------------------------------
Traceback (most recent call last):
 File "/Users/tu/YunPan/1.py", line 13, in test_int2
  self.assertEqual(division_funtion(9, 4), 2.25)
AssertionError: 2 != 2.25

----------------------------------------------------------------------
Ran 3 tests in 0.001s

FAILED (failures=2)

汗!发现了没,竟然两个都失败了,测试发现:

4.2除以3 等于 1.4000000000000001 不等于期望值 1.4

9除以4等于2,不等于期望的 2.25

下面我们就是要修复这些问题,再次运行测试,直到运行不报错为止。

譬如根据实际情况,假设我们只需要保留到小数点后6位,可以这样改:

def division_funtion(x, y):
  return round(float(x) / y, 6)

再次运行就不报错了:

...
----------------------------------------------------------------------
Ran 3 tests in 0.000s

 
OK

Django中的单元测试

尽早进行单元测试(UnitTest)是比较好的做法,极端的情况甚至强调“测试先行”。现在我们已经有了第一个model类和Form类,是时候开始写测试代码了。

Django支持python的单元测试(unit test)和文本测试(doc
test),我们这里主要讨论单元测试的方式。这里不对单元测试的理论做过多的阐述,假设你已经熟悉了下列概念:test
suite, test case, test/test action,  test data, assert等等。

在单元测试方面,Django继承python的unittest.TestCase实现了自己的django.test.TestCase,编写测试用
例通常从这里开始。测试代码通常位于app的tests.py文件中(也可以在models.py中编写,但是我不建议这样做)。在Django生成的
depotapp中,已经包含了这个文件,并且其中包含了一个测试用例的样例:

depot/depotapp/tests.py

from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.assertEqual(1 + 1, 2)

你可以有几种方式运行单元测试:

  • python manage.py test:执行所有的测试用例
  • python manage.py test app_name, 执行该app的所有测试用例
  • python manage.py test app_name.case_name: 执行指定的测试用例

用第三种方式执行上面提供的样例,结果如下:

$ python manage.py test depotapp.SimpleTest

Creating test database for alias 'default'...
.
----------------------------------------------------------------------
Ran 1 test in 0.012s

OK
Destroying test database for alias 'default'...

你可能会主要到,输出信息中包括了创建和删除数据库的操作。为了避免测试数据造成的影响,测试过程会使用一个单独的数据库,关于如何指定测试数据库
的细节,请查阅Django文档。在我们的例子中,由于使用sqlite数据库,Django将默认采用内存数据库来进行测试。

下面就让我们来编写测试用例。在《Agile Web Development with Rails
4th》中,7.2节,最终实现的ProductTest代码如下:

class ProductTest < ActiveSupport::TestCase
test "product attributes must not be empty"do
product = Product.new
assert product.invalid?
assert product.errors[:title].any?
assert product.errors[:description].any?
assert product.errors[:price].any?
assert product.errors[:image_url].any?
end
test "product price must be positive"do
product = Product.new(:title => "My Book Title",
:description => "yyy",
:image_url => "zzz.jpg")
product.price = -1
assert product.invalid?
assert_equal "must be greater than or equal to 0.01",
product.errors[:price].join('; ')
product.price = 0
assert product.invalid?
assert_equal "must be greater than or equal to 0.01",
product.errors[:price].join('; ')
product.price = 1
assert product.valid?
end
def new_product(image_url)
Product.new(:title => "My Book Title",
:description => "yyy",
:price => 1,
:image_url => image_url)
end
test "image url"do
ok = %w{ fred.gif fred.jpg fred.png FRED.JPG FRED.Jpg
http://a.b.c/x/y/z/fred.gif }
bad = %w{ fred.doc fred.gif/more fred.gif.more }
ok.eachdo |name|
assert new_product(name).valid?, "#{name} shouldn't be invalid"
end
bad.eachdo |name|
assert new_product(name).invalid?, "#{name} shouldn't be valid"
end
end
test "product is not valid without a unique title"do
product = Product.new(:title => products(:ruby).title,
:description => "yyy",
:price => 1,
:image_url => "fred.gif")
assert !product.save
assert_equal "has already been taken", product.errors[:title].join('; ')
end
test "product is not valid without a unique title - i18n"do
product = Product.new(:title => products(:ruby).title,
:description => "yyy",
:price => 1,
:image_url => "fred.gif")
assert !product.save
assert_equal I18n.translate('activerecord.errors.messages.taken'),
product.errors[:title].join('; ')
end
end

对Product测试的内容包括:

1.title,description,price,image_url不能为空;

  1. price必须大于零;

  2. image_url必须以jpg,png,jpg结尾,并且对大小写不敏感;

  3. titile必须唯一;

让我们在Django中进行这些测试。由于ProductForm包含了模型校验和表单校验规则,使用ProductForm可以很容易的实现上述测试:

depot/depotapp/tests.py

#/usr/bin/python
#coding: utf8
"""
This file demonstrates writing tests using the unittest module. These will pass
when you run "manage.py test".
Replace this with more appropriate tests for your application.
"""
from django.test import TestCase
from forms import ProductForm
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.assertEqual(1 + 1, 2)
class ProductTest(TestCase):
def setUp(self):
self.product = {
'title':'My Book Title',
'description':'yyy',
'image_url':'http://google.com/logo.png',
'price':1
}
f = ProductForm(self.product)
f.save()
self.product['title'] = 'My Another Book Title'
#### title,description,price,image_url不能为空
def test_attrs_cannot_empty(self):
f = ProductForm({})
self.assertFalse(f.is_valid())
self.assertTrue(f['title'].errors)
self.assertTrue(f['description'].errors)
self.assertTrue(f['price'].errors)
self.assertTrue(f['image_url'].errors)
####  price必须大于零
def test_price_positive(self):
f = ProductForm(self.product)
self.assertTrue(f.is_valid())
self.product['price'] = 0
f = ProductForm(self.product)
self.assertFalse(f.is_valid())
self.product['price'] = -1
f = ProductForm(self.product)
self.assertFalse(f.is_valid())
self.product['price'] = 1
####  image_url必须以jpg,png,jpg结尾,并且对大小写不敏感;
def test_imgae_url_endwiths(self):
url_base = 'http://google.com/'
oks = ('fred.gif', 'fred.jpg', 'fred.png', 'FRED.JPG', 'FRED.Jpg')
bads = ('fred.doc', 'fred.gif/more', 'fred.gif.more')
for endwith in oks:
self.product['image_url'] = url_base+endwith
f = ProductForm(self.product)
self.assertTrue(f.is_valid(),msg='error when image_url endwith '+endwith)
for endwith in bads:
self.product['image_url'] = url_base+endwith
f = ProductForm(self.product)
self.assertFalse(f.is_valid(),msg='error when image_url endwith '+endwith)
self.product['image_url'] = 'http://google.com/logo.png'
###  titile必须唯一
def test_title_unique(self):
self.product['title'] = 'My Book Title'
f = ProductForm(self.product)
self.assertFalse(f.is_valid())
self.product['title'] = 'My Another Book Title'

然后运行 python manage.py test
depotapp.ProductTest。如同预想的那样,测试没有通过:

Creating test database for alias 'default'...
.F..
======================================================================
FAIL: test_imgae_url_endwiths (depot.depotapp.tests.ProductTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/holbrook/Documents/Dropbox/depot/../depot/depotapp/tests.py", line 65, in test_imgae_url_endwiths
self.assertTrue(f.is_valid(),msg='error when image_url endwith '+endwith)
AssertionError: False is not True : error when image_url endwith FRED.JPG

----------------------------------------------------------------------
Ran 4 tests in 0.055s

FAILED (failures=1)
Destroying test database for alias 'default'...

因为我们之前并没有考虑到image_url的图片扩展名可能会大写。修改ProductForm的相关部分如下:

def clean_image_url(self):
url = self.cleaned_data['image_url']
ifnot endsWith(url.lower(), '.jpg', '.png', '.gif'):
raise forms.ValidationError('图片格式必须为jpg、png或gif')
return url

然后再运行测试:

$ python manage.py test depotapp.ProductTest

Creating test database for alias 'default'...
....
----------------------------------------------------------------------
Ran 4 tests in 0.060s

OK
Destroying test database for alias 'default'...

测试通过,并且通过单元测试,我们发现并解决了一个bug。

 

http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html

您可能感兴趣的文章:

  • 使用Python的Django框架结合jQuery实现AJAX购物车页面
  • Python的Django REST框架中的序列化及请求和返回
  • 详解Python的Django框架中的templates设置
  • Python使用django获取用户IP地址的方法
  • 分析Python的Django框架的运行方式及处理流程
  • Django1.7+python 2.78+pycharm配置mysql数据库教程
  • python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
  • python django集成cas验证系统
  • 教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
  • 详解Python的Django框架中manage命令的使用与扩展

http://www.bkjia.com/Pythonjc/1120143.htmlwww.bkjia.comtruehttp://www.bkjia.com/Pythonjc/1120143.htmlTechArticle对Python的Django框架中的项目进行单元测试的方法,pythondjango
Python中的单元测试 我们先来回顾一下Python中的单元测试方法。 下面是一个
Py…

http://www.xuliangwei.com/ http://www.nnzhp.cn

http://www.cnblogs.com/lianzhilei/  cmdb

http://www.cnblogs.com/caseast/    cmdb

http://www.cnblogs.com/rexkang/    cmdb

http://www.cnblogs.com/evilliu/

http://www.cnblogs.com/uyunsoft/

http://www.cnblogs.com/chenice/

http://www.cnblogs.com/madsnotes/

http://www.cnblogs.com/muzinan110/

  1. http://www.cnblogs.com/linhaifeng/articles/6533839.html   
    第一篇:初识Python

  2. http://www.cnblogs.com/linhaifeng/articles/5936688.html 
    第二篇:python基础之核心风格

  3. http://www.cnblogs.com/linhaifeng/articles/5935801.html 
    第三篇:python基础之数据类型与变量

  4. http://www.cnblogs.com/linhaifeng/articles/5943129.html 
    第四篇:python基础之条件和循环

  5. http://www.cnblogs.com/linhaifeng/articles/5950339.html
    第五篇:python基础之字符编码

  6. http://www.cnblogs.com/yuanchenqi/articles/5956943.html
    py编码终极版 
    苑昊老师

http://www.cnblogs.com/yuanchenqi/articles/5828233.html  
 Py西游攻关之函数 
  苑昊老师

http://www.cnblogs.com/yuanchenqi/articles/5694897.html  
 Py西游攻关之装饰器  苑昊老师

http://www.cnblogs.com/yuanchenqi/articles/5722574.html  
 Py西游攻关之IO
model
 苑昊老师

  1. http://www.cnblogs.com/linhaifeng/articles/5984922.html 
    第六篇:python基础之文件处理

  2. http://www.cnblogs.com/linhaifeng/articles/6113086.html  第七篇
    python基础之函数,递归,内置函数

  3. http://www.cnblogs.com/linhaifeng/articles/6133014.html  第八篇
    迭代器协议和生成器

  4. http://www.cnblogs.com/linhaifeng/articles/6140395.html  第九篇
    装饰器

  5. http://www.cnblogs.com/linhaifeng/articles/6182264.html 第十篇
    面向对象的程序设计

  6. http://www.cnblogs.com/linhaifeng/articles/6204014.html  第十一篇
    面向对象进阶

  7.  http://www.cnblogs.com/linhaifeng/articles/6232220.html 第十二篇
    异常处理

  8.  http://www.cnblogs.com/linhaifeng/articles/6129246.html 第十三篇
    python基础之socket编程

  9.  http://www.cnblogs.com/linhaifeng/articles/6384466.html
    常用模块

  10.  http://www.cnblogs.com/linhaifeng/articles/6379069.html
    模块与包

  11.  http://www.cnblogs.com/linhaifeng/articles/6817679.html
    进程与线程

17_1
 http://www.cnblogs.com/linhaifeng/articles/7088765.html  进程与线程理论基础

17_2
 http://www.cnblogs.com/linhaifeng/articles/6817679.html  Cpython解释器支持的进程与线程

  1.  http://www.cnblogs.com/linhaifeng/articles/6883726.html
    函数草稿

18_1  http://www.cnblogs.com/linhaifeng/articles/7783599.html 
 selenium模块

  1.  http://www.cnblogs.com/yuanchenqi/articles/6766020.html
    常用模块

  2.   http://www.cnblogs.com/yuanchenqi/articles/5732581.html
    Py西游攻关之模块

  3.  
    http://www.cnblogs.com/yuanchenqi/articles/6755717.html 多线程与多进程

  4.   http://www.cnblogs.com/yuanchenqi/articles/5755198.html
    Py西游攻关之RabbitMQ、Memcache、Redis

  5.   http://www.cnblogs.com/yuanchenqi/articles/6835654.html
    前端基础之html

  6.  
    http://www.cnblogs.com/yuanchenqi/articles/6856399.html  前端基础之CSS

  7.  
    http://www.cnblogs.com/yuanchenqi/articles/6893904.html  JavaScript
    基础学习1

  8.  
    http://www.cnblogs.com/yuanchenqi/articles/6070667.html  前端学习之jquery

26_1. http://www.cnblogs.com/yuanchenqi/articles/7638956.html     
Django-ajax

  http://www.cnblogs.com/yuanchenqi/articles/6936986.html jQuery

    http://jquery.cuishifeng.cn/   jQuery网址

  1.  
    http://www.cnblogs.com/wupeiqi/articles/5713315.html    Python开发【第十七篇】:MySQL(一)

  2.  
    http://www.cnblogs.com/wupeiqi/articles/5713323.html    Python开发【第十八篇】:MySQL(二)

  3.  
    http://www.cnblogs.com/wupeiqi/articles/5713330.html    Python开发【第十九篇】:Python操作MySQL

   http://www.cnblogs.com/wupeiqi/articles/5716963.html    索引补充

  1.  
    http://www.cnblogs.com/yuanchenqi/articles/6357507.html  数据库基础

  2.  
    http://www.cnblogs.com/yuanchenqi/articles/6437362.html  数据库进阶

  3.   http://www.cnblogs.com/wupeiqi/articles/5729934.html  
        MySQL练习题

  4.   http://www.cnblogs.com/wupeiqi/p/5748496.html          
        MySQL练习题参考答案

  5.   http://www.cnblogs.com/wupeiqi/articles/5237704.html  
       Python之路【第十六篇】:Django【基础篇】

  6.   http://www.cnblogs.com/wupeiqi/articles/5246483.html  
       Python之路【第十七篇】:Django【进阶篇

35_1.
 http://www.cnblogs.com/wupeiqi/articles/6216618.html   Django之Model操作

35-2 http://www.cnblogs.com/wupeiqi/articles/4999680.html  s10期Tornao分享

35-3 http://www.cnblogs.com/hellojesson/p/6104100.html  
  Django知识点整理

35-4 http://www.cnblogs.com/wupeiqi/articles/6144178.html    
 Django之Form组件

35-5   http://www.cnblogs.com/wupeiqi/articles/5369773.html      python
s12 day13
JavaScript、Dom和jQuery

35-6   http://www.cnblogs.com/wupeiqi/articles/5812291.html    
 Python生成随机验证码

35-7  
http://www.cnblogs.com/wupeiqi/articles/6229414.html  Django之ModelForm组件

35-8   http://www.cnblogs.com/wupeiqi/p/5938916.html          
 Tyrion中文文档(含示例源码)

 

  1.   http://www.cnblogs.com/wupeiqi/articles/5132791.html  
       Python之路【第九篇】:Python操作
    RabbitMQ、Redis、Memcache、SQLAlchemy

  2.   http://www.cnblogs.com/wupeiqi/articles/5703697.html  
       Python开发【第十六篇】:AJAX全套

37_1  http://www.cnblogs.com/wupeiqi/articles/6307554.html  
 KindEditor

  1.   http://www.cnblogs.com/wupeiqi/articles/5702910.html  
       Python开发【第十五篇】:Web框架之Tornado

39    http://www.cnblogs.com/alex3714/articles/6217453.html      
 python 之路,Day12 –
redis缓存数据库

武沛齐tornado博客:

  http://www.cnblogs.com/wupeiqi/articles/5341480.html          
 Python之路【第十八篇】:Web框架们

  http://www.cnblogs.com/wupeiqi/p/4375445.html      第一篇:白话tornado源码之一个脚本引发的血案

  http://www.cnblogs.com/wupeiqi/p/4375610.html      第二篇:白话tornado源码之待请求阶段

  http://www.cnblogs.com/wupeiqi/p/4540398.html      第三篇:白话tornado源码之请求来了

  http://www.cnblogs.com/wupeiqi/p/4592637.html      第四篇:白话tornado源码之褪去模板外衣的前戏

  http://www.cnblogs.com/wupeiqi/p/4592066.html      第五篇:白话tornado源码之褪去模板的外衣

  1.   http://www.cnblogs.com/alex3714/articles/5457672.html
       Python之路,Day14 – It’s time for
    Django

  2.   http://www.cnblogs.com/alex3714/articles/5512568.html
       Python之路,Day15 –
    Django适当进阶篇

        http://www.cnblogs.com/yuanchenqi/articles/5786089.html    
    Py西游攻关之Django(一) 
 苑昊老师

  1.   http://www.cnblogs.com/yuanchenqi/articles/6788872.html
      Bootstrap框架(一)

  2.   http://www.cnblogs.com/yuanchenqi/articles/6791743.html
      Bootstrap框架(二)

  3.   http://www.cnblogs.com/yuanchenqi/articles/6795596.html
      Bootstrap框架(三)

  4.   http://www.cnblogs.com/yuanchenqi/articles/6083427.html
      Django~1

  http://www.cnblogs.com/yuanchenqi/articles/6811632.html  
 Django基础(一)

  1.   http://www.cnblogs.com/yuanchenqi/articles/6000358.html
      Http协议

  2.   http://www.cnblogs.com/wupeiqi/articles/4556300.html      
     Python CMDB开发

46-1  http://www.cnblogs.com/wupeiqi/articles/6192986.html    
  CMDB开发

  1.   http://www.cnblogs.com/wupeiqi/articles/4786871.html      
     CMDB源码使用须知

47_1  http://www.cnblogs.com/wupeiqi/articles/6415436.html    
 CMDB资产采集

47_2  http://www.cnblogs.com/gccbuaa/p/7019667.html          
 阿里云api调用做简单的cmdb

  1.   http://www.cnblogs.com/alex3714/articles/6100840.html      python
    之路,Day27 –
    主机管理+堡垒机系统开发

  2.   http://www.cnblogs.com/alex3714/articles/5286889.html 
      Python之路,Day12 –
    那就做个堡垒机吧

  3.   http://www.cnblogs.com/alex3714/articles/5450798.html
      Python之路,Day20 –
    分布式监控系统开发

  4.   http://www.cnblogs.com/alex3714/articles/5420433.html
      Python之路,Day19 –
    CMDB、CMDB、CMDB

  5.   http://www.cnblogs.com/alex3714/articles/5337630.html
      Python之路,Day18 –
    开发一个WEB聊天来撩妹吧

  6.   http://www.cnblogs.com/alex3714/articles/5311625.html
      Python之路,Day17 –
    分分钟做个BBS论坛

54.

  http://www.cnblogs.com/alex3714/articles/6567636.html   [Django之路

项目实战之<教育行业CRM开发>](http://www.cnblogs.com/alex3714/articles/6567636.html)

55.
 http://www.cnblogs.com/wupeiqi/articles/6229292.html         爬虫
 Q2Day81

 55_1  http://www.cnblogs.com/wupeiqi/articles/6283017.html     爬虫
  Q2Day79

http://www.cnblogs.com/wupeiqi/articles/5115190.html      python
s12 day2

http://www.cnblogs.com/wupeiqi/archive/2013/03/03/2941295.html   http的请求和响应过程2

http://www.cnblogs.com/wupeiqi/archive/2013/03/04/2943427.html  http的请求和响应过程3

http://www.cnblogs.com/wupeiqi/articles/5133343.html    python s12
day3

http://www.cnblogs.com/wupeiqi/archive/2013/05/12/3074478.html  MongoDB学习笔记(一)MongoDB概述和安装

http://www.cnblogs.com/wupeiqi/articles/4457274.html    JavaScript、Dom、jQuery

http://www.cnblogs.com/wupeiqi/articles/4786251.html    Django验证码【附源码】

http://www.cnblogs.com/wupeiqi/articles/7281134.html          Django
REST framework

 Django篇:

http://blog.csdn.net/fgf00/article/details/54018066  web框架本质 

http://blog.csdn.net/fgf00/article/details/53522613  Django
安装使用基础

http://blog.csdn.net/fgf00/article/details/53649820  Django(二)路由系统、视图、模板 

http://blog.csdn.net/fgf00/article/details/53678205  Django(三) ORM
数据库操作

http://blog.csdn.net/fgf00/article/details/53812643  Django(四) ORM
外键操作及初识Ajax

http://blog.csdn.net/fgf00/article/details/54018066  Django(五)母版继承、Cookie、视图装饰器等

http://blog.csdn.net/fgf00/article/details/54299199  Django(六)Session、CSRF、中间件

http://blog.csdn.net/fgf00/article/details/54319791  Django(七)缓存、信号、Form

http://blog.csdn.net/fgf00/article/details/54614706  Django(八)上:Model操作和Form操作

http://blog.csdn.net/fgf00/article/details/54629502  Django(八)下:Model操作和Form操作、序列化操作

http://blog.csdn.net/fgf00/article/details/54917396  Django(九)上:ModelForm操作

http://blog.csdn.net/fgf00/article/details/54917439  Django(九)下:Ajax操作、图片验证码、KindEditor使用

 

linux:

samba配置:http://blog.chinaunix.net/uid-23069658-id-3142052.html

 

ubuntu:

mysql启停:http://www.2cto.com/database/201305/207791.html

mysql开启3306端口:http://www.linuxdiyf.com/linux/15206.html

安装pip:http://www.2cto.com/os/201305/213725.html

 

python:

线程指南:http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html

一行python实现并行:http://blog.chedushi.com/archives/9158

memcache的权重原型代码:http://www.cnblogs.com/wupeiqi/articles/4999680.html

PEP8 Python 编码规范整理:http://blog.sae.sina.com.cn/archives/4781

  

Django:

django
web框架:https://www.processon.com/view/link/547a9650e4b047b811dd6fdb

django 初始化数据库:http://www.itnose.net/detail/6111283.html

django
请求及参数传递:http://www.cnblogs.com/qq78292959/p/3238752.html

django
model报错:http://blog.csdn.net/pipisorry/article/details/45727309

django框架学习-Model进阶用法:http://blog.csdn.net/sundaydashu/article/details/7959977

 

前端:

天帅大神的html详解:http://www.cnblogs.com/luotianshuai/p/5159449.html

jquery: http://www.php100.com/manual/jquery/

JavaScript、Dom、jQuery:http://www.cnblogs.com/wupeiqi/articles/4457274.html

bootstrap-modal:http://www.bkjia.com/webzh/1037178.html 

 

Echarts:

离线使用echarts及一些细节:http://blog.csdn.net/wudishine/article/details/41940761

 

银角脑残粉必备 http://www.cnblogs.com/wupeiqi:

目录:http://www.cnblogs.com/wupeiqi/articles/4938499.html

JavaScript、Dom、jQuery:http://www.cnblogs.com/wupeiqi/articles/4457274.html

django基础:http://www.cnblogs.com/wupeiqi/articles/4491246.html

django基础2:http://www.cnblogs.com/wupeiqi/articles/4508271.html

爬虫:http://www.cnblogs.com/wupeiqi/articles/5354900.html

51:http://www.cnblogs.com/wupeiqi/articles/5433893.html

 20170622博客: http://blog.csdn.net/fgf00/article/details/54018066    
 Django部分内容(武沛齐)

金角大王那些鲜为人知的博客:

http://www.cnblogs.com/alex3714/category/770733.html

linux基础:http://www.cnblogs.com/alex3714/articles/5425379.html

面试题:http://www.cnblogs.com/alex3714/articles/5930715.html

 

python模块

1.pywin32 https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/

2.Microsoft Visual C++ 9.0 is required  Unable to find
vcvarsall.bat的解决方法:http://www.cnblogs.com/ldm1989/p/4210743.html

 

git

1.http://www.cnblogs.com/ruofengzhishang/p/3842587.html

2.http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/

 

http://www.tybai.com/

https://github.com/TTyb

http://www.cnblogs.com/vamei/