大四实习期间公司遇到的一些知识点
计算机知识点:
CMD里面 ping 域名, 就知道服务器是什么
台式机连接无线网:
一、无线网卡
二、无线网卡的驱动(驱动精灵)
访问: http://httpbin.org/get 获取:
{
"args": {
},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
"Host": "httpbin.org",
"Referer": "https://blog.csdn.net/xiongzaiabc/article/details/84030849",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
},
"origin": "42.236.203.8, 42.236.203.8",
"url": "https://httpbin.org/get"
}
Python知识点:
float向下取整直接用内建的 int() 函数即可:
>>> a = 3.75
>>> int(a)
3
正则表达式:获取 "post/"后面的所有数字:
a = re.findall(r'post/(\d+)', detail_url)[0]
去除换行:str.replace("\n", "")
去除空格:str.strip()
MD5使用:
from hashlib import md5
m = md5()
m.update(b"aa")
print(m.hexdigest())
代码 %2B在html中是+号的意思,通过 GET方式传值的时候,+号会被浏览器处理为空。。需要转换为%2b
升级PIP ,升级一下pip ,--upgrade 后面跟的是需要升级的库名
python -m pip install --upgrade pip
python后端执行前端JS代码可以使用:
pip install PyExecJS
import execjs
execjs.eval("js代码")
Python内置函数eval()
将字符串str当成有效的表达式来求值并返回计算结果 如:
a = "*"
b = "5"
c = "6"
print(eval("{}{}{}".format(b, a, c)))
打印结果是30
在浏览器url中 "/", 等于"%2F" "+", "%2B"
python 数字的四舍五入
问题
你想对浮点数执行指定精度的舍入运算。
解决方案
对于简单的舍入运算,使用内置的 round(value, ndigits) 函数即可。比如:
Python的list中insert() 将一个元素插入到列表中,但其参数有两个(如insert(1,”g”)),第一个参数是索引点,即插入的位置,第二个参数是插入的元素。
.py文件,有两种执行方法
一、直接右键运行,作为脚本运行
二、被import到其他程序中执行
如果加上 if __name__ == '__main__': 这句代码的话,只有右键运行这句代码下面的代码才会运行,而被导入到其他程序中,这句代码下面的话将不再执行
python为什么只有一个元素的元组要加逗号?
假设你要给一个函数传递一个参数,而这个参数是一个tuple,比如:(12,),如果你写成(12),你猜python是会把他当成数字12呢,还是一个tuple?
这样的情况并不少见,比如数学运算,就会用到小括号,python会如何处理呢?加个“,”,就是明确的告诉python,这是一个tuple。
字符串也会出现类似的情况。
('abc')和('abc',)python会有不同的处理。
找几个方法处理一下对应的对象类型,就明白了。
django 返回json格式数据
import json
from django.http import HttpResponse
def get_an_apple(request):
resp = {'errorcode': 100, 'detail': 'Get success'}
return HttpResponse(json.dumps(resp), content_type="application/json")
函数返回多个值,可以用如下方法按需获取
def xxx():
a = 1
b = 2
c = 3
return {"a": a, "b": b, "c": c}
fff = xxx()
print(fff["a"])
请求头 "Transfer-Encoding": "chunked", 出现乱码,去掉这个请求头试试,(可以看看awehome发布新帖时,就携带有这个头)
Requests支持流式上传,这允许你发送大的数据流或文件而无需先把它们读入内存。要使用流式上传,仅需为你的请求体提供一个类文件对象即可:(可以看看awehome发布新帖时,就有这种情况)
Requests+requests-toolbelt库(直接发送数据流)
MySQL知识点:
自增长代码代表:auto_increment
主建的代码代表:primary key
通过python给mysql建表
import pymysql
db = pymysql.Connect(host='119.28.130.xxx',
port=xxx,
user='xxx',
password='xx.666',
database='xx', )
cursor = db.cursor()
sql = '''create table Student( (create table xxx 有个table 有个table 有个table)
StdID int not null,
StdName varchar(100) not null (注意最后一行没有逗号 没有逗号 没有逗号)
)'''
desc table 查看表属性
mysql添加字段 alter table table1 add transactor varchar(10) not Null;
mysql修改字段 alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
cursor.execute(sql)
db.commit()
print(cursor)
print(db)
创建数据库 create database xxx
删除数据库 drop database xxx
删除表 drop table xxx
清空表内数据
ORM添加保存实时时间字段
date = models.DateTimeField(auto_now_add=True)
django通过ORM操作mysql
详情看:https://www.cnblogs.com/chaojiyingxiong/p/9490582.html(找时间整理到自己博客)
Mysql插入中文时提示:ERROR 1366 (HY000): Incorrect string value:
做以下操作:
修改表的编码方式:ALTER TABLE `test` DEFAULT CHARACTER SET utf8;(该命令用于将表test的编码方式改为utf8; )
修改字段的编码方式:ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL;(该命令用于将表test中name字段的编码方式改为utf8)
前端知识点:
$("#log").empty() 删除id为log标签下面的所有子标签
$("#log").append("<p>" + success_data + "</p>") id为log标签下面增加一个p标签
$("#log").val()获取id为log输入框中的内容
$("#log").val("哈哈哈")把id为log输入框中的内容修改为"哈哈哈"
jquery修改标签css样式
$(".btn1").click(function(){
$("p").css("color","red");
});
路径中的点“./”、“../”、“/”代表的含义
“./”:代表目前所在的目录
“. ./”:代表上一层目录
“/”:代表根目录
//获取id=div1下的子元素的个数
$('#div1').children().length;
//获取id=div1下的span元素个数
$('#div1').children('span').length;
html适应手机端
<meta name="viewport" content="initial-scale=1, user-scalable=0, minimal-ui">
媒体查询
@media screen and (max-width: 500px) {
#all_url {
width: 300px;
}
}
解决手机端页面左右浮动 :
html,body{
overflow-x:hidden;
}
域名前的“www”改成“m”,一般就是访问手机页面的网站,例如:“www.baidu.com”改为“m.baidu.com”
alert(3.9395613131043667.toFixed(10)) 打印结果是 3.9395613131 相当于取小数点后面的十位数
CSS加粗字体:
font-weight: bold;
html母版继承
{% extends 'master.html' %} #继承master.html,只能继承一个模版
{% block title %}用户管理{% endblock %} 继承模板之后添加自己才有的块儿
HTML JSON解析
JSON.parse(后台传过来的数据):把JSON字符串转换成js数据,如存在不符合JSON要求的数据,会直接报错;
JSON.stringigy(要往后台传数据 ):把js的数据转换成JSON字符串,如存在不符合JSON要求的数据,会直接报错
Git基本命令:
Git工作步骤:工作区→暂存区→提交到git仓库
mkdir xxx 新建文件夹
touch xxx.txt 新建文件
git init 新建git库
git status 查看当前文件夹中文件状态
git add 内容有变动的文件添加到待暂存区
git commit -m '版本变更描述' 将暂存区的文件提交到git仓库
git diff xxx.txt 查看内容有变动的文件是哪里有变动了
git reflog 查看历史提交版本
git reset hard--历史版本码 返回以前版本
cat xxx.txt 查看文件的内容
git checkout --xxx.txt 撤销操作,有以下两种情况: (注意:命令git checkout -- xxx.txt 中的 -- 很重要,如果没有 -- 的话,那么命令变成创建分支了。)
一、xxx.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
二、另外一种是xxx.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态
rm xxx.txt 删除文件
此时 git status 显示 deleted: xxx.txt
此时有两种选择:
一、git commit -m '详细描述' 直接提交,彻底删除
二、checkout -- xxx.txt 恢复被删除的这个文件
远程仓库(Github):
在连接之前,先注册github账号,由于本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置:
HTTP请求和响应参数
Request Headers
Accept:告诉服务器,客户机支持的数据类型
Accept-Encoding:告诉服务器,客户机支持的数据压缩格式
Cache-Control:缓存控制,服务器通过控制浏览器要不要缓存数据
Connection:处理完这次请求,是断开连接还是保持连接
Cookie:客户机通过这个可以向服务器带数据
Host:访问的主机名
Upgrade-Insecure-Requests:参考http://www.cnblogs.com/hustskyking/p/upgrade-insecure-requests.html
User-Agent:告诉服务器,客户机的软件环境
Response Headers响应头
Connection:处理完这次请求后,是断开连接还是继续保持连接
Content-Encoding:服务器通过这个头告诉浏览器数据的压缩格式
Content-Length:服务器通过这个头告诉浏览器回送数据的长度
Content-Type:服务器通过这个头告诉浏览器回送数据的类型
Date:当前时间值
Server:服务器通过这个头告诉浏览器服务器的类型
Vary:Accept-Encoding ——明确告知缓存服务器按照 Accept-Encoding 字段的内容,分别缓存不同的版本;参考:https://imququ.com/post/vary-header-in-http.html
X-Powered-By:服务器告知客户机网站是用何种语言或框架编写的。