Model 一.创建表 1.基本结构 字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 primary_key=True 注:当model中如果没有自增列,则自动会创建一个列名为id的列 from django.db import models class UserInfo(models.Model): # 自动创建一个列名为id的且为自增的整数列 use…
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver 0.0.0.0 python manage.py st…
什么是web服务器的原理是什么 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:utf-8 import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n") client.send("Hell…
ORM: orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言. orm的优点: 隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心.他使得我们的通用数据库…
消息服务器rabbmit RabbitMQ 消息队列 python里有两个Q, threading queue.不同线程间数据交互 进程Queue: 不同进程间交互这个说法是错误的. 这个是用于父进程与子进程间交互.或者同属于同一父进程下多个子进程进行交互. 两个python程序的进程间是无法通信的. 各个独立进程间通信: QQ 要发送消息给 world.1.通过socket,这个需要自己去写很多东西(沾包.收到的是什么需要返回的又是什么……) .2.消息队列, 那两个不同的程序要通信.两台机器…
算法(Algorithm): 一个计算过程, 解决问题的方法 1.递归的两个特点 - 调用自身 - 结束条件 时间复杂度 - 时间复杂度是用来估计算法运行时间的一个式子(单位) - 一般来说,时间复杂度高的算法比复杂度低的算法快空间复杂度 用来评估算法内存占用大小的一个式子 列表查找: 从列表中查找指定元素 输入:无序 输出:有序顺序查找: 从列表第一个元素开始,顺序进行搜索,直到找到为止. 二分查找: 从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区…
异步: 知识情况: 1.多线程, 多线程使用场景 1.IO操作不占CPU,读写数据(网络中.系统中) 2.计算占CPU, 3.上下文切换不占CPU.它消耗资源 python多线程 不适合CPU密集型的任务, 适合IO操作密集型的任务 那么如何利用呢? 8核? 那我就启动8个进程.每个进程里有一个主线程干活. 2.进程数据共享 队列queue 进程queue from multiprocessing import Queue 管道: parent_conn, child_conn. = Pipe(…
多线程 多线程例子, 注释部份即为多线程的使用 #-*- coding: utf-8 -*- # Wind clear raise # 2017/3/5 下午2:34 import socket import threading import time import queue, json import hashlib def list(conn): conn.send(b"list") recv_data_size = conn.recv(1024) conn.send(b"…
 本人小白一枚,想着把学习时的东西以博客的方式记录下来,文章中有不正确的地方请大佬多多指点!!共同学习 前期准备 安装python3.selenium.下载对应版本的webdriver:安装所需的第三方库,不多赘述,最基础的东西,不会的自行跳转^0^ 项目介绍 功能简述 对webdriver常用方法进行二次封装,使用起来更方便,同时会有log记录 log日志会同时打印在控制台和写入log文件中 测试完成后,会自动发送邮件,邮件信息conf.ini可配置 采用PO模式编写,元素信息维护在对应页面中…
简要归纳 每个缩进层级使用4个空格. 每行最多79个字符. 顶层的函数或类的定义之间空两行. 采用ASCII或UTF-8编码文件 在文件顶端,注释和文档说明之下,每行每条import语句只导入一个模块,同时要按标准库,第三方库和本地库的导入顺序进行分组. 在小括号.中括号.大括号之间或者逗号之间没有额外的空格. 类的命名采用驼峰命名法,如CamelCase:异常的定义使用Error前缀(如适用的话):函数的命名使用下划线分隔的小写字母,如separated_by_underscores:用下划线…