遇到过的坎儿
1.
# 1.Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。 #这种情况就是端口占用,换个端口就行了
2.
git的忽略文件夹,如果在创建改忽略文件夹之前就push过,那么这个.gitignore文件将不起作用
3.
map函数
filter函数
zip函数
4.当你需要继承django的auth表时,请注意用户名的字段是已经写好的username,不是你想改就能改的,不要自作聪明
from django.contrib.auth.models import AbstractUser class User(AbstractUser): number = models.IntegerField(null=True) role = models.ForeignKey(to='Role',null=True,blank=True)
而且创建超级用户的话,自己添加的字段都要设置成可以为空,或者设默认值,username和password这些字段都不必要重新写
5.喵的,request.POST.get(...),,,,,还有个request.POST.getlist(......)
找了一个下午,这,,,脑子!!
print(request.POST.getlist('question'))
6.这个没耽误太长时间,但是确实忘记了
求列表长度用len(list)
7.通过命令行创建django项目,开始一直报错
然后把django的bin文件目录,添加到环境变量,还是不行
有人说要用django-admin.py ,我试了也不行
后来重新下载了django的最新版本,1.11.7,但是实际应用的还是1.11.4,不知道怎么回事
但是之后就莫名其妙的好了,注意不能加.py
不管怎么说,反正是能用了,很神奇
8.关于用Python读取大文件
read是不行的,会整个读到内存,网上的资料都说readlines可以,但是我用readlines读写的时候,内存占用率还是很大
印象中一直挥之不去的chunks,是requests.FILE 里面,接收到一个文件时使用的
9.关于pycharm中es6 和 es5 的支持
有些代码需要根据ES6的规范来写,但是有的浏览器不支持,所以可以通过一个转码器(babel)
当你强行把编码格式改成ES6之后,可能会有一个提示
Enable file watcher to transpile ECMAScript 6 to ECMAScript 5 using babel
此时你可以通过npm install -g babel ,然后把这个配置成转码器,就不会有这个提示了
10.自己写中间件的时候遇到一个问题:
报错信息:object is not callable
后来发现是上面复制一个类的时候,有个__call__方法,写到外面了,日了狗,这个文件就没法调用了,
11.还是在跨域的时候,有几个点没搞清楚
a) 用cors处理跨域的时候,是设置响应头,而不是请求头,所以需要在response上设置
b) 所以如果在中间件中设置,是要处理process_response 函数的,而不是其他的函数,注意这个函数需要接收的参数有request和response
c) 关于这个response,视图函数中 只有一个request参数,response是自己封装的,(用Httpresponse或者JsonResponse),而且得是封装的一个字典,这个字典可以是空字典,但是最好是包含状态码,错误信息啥的
然后,重点:这个字典是响应体,封装之后的response对象,再设置键值对就是响应头
12,关于模块导入的问题:
这两种方式导入的模块,id是不同的
2118091295864 2118091666520
而且导入模块,会执行这个py文件中的代码,除非用被导入的模块,执行方法在main函数中
13. 关于类的静态变量
类或者实例对象都可以调用,但是如果要修改,就必须由类来修改,才能全局生效,如果是实例化对象修改的,只能本对象内部使用
14.
这可以显示数据库查询语句
15,列表可以相加的,不用extend
In [6]: l1 = [1.2,4] In [7]: l2 = [4,5] In [8]: l1+=l2 In [9]: l1 Out[9]: [1.2, 4, 4, 5]