01 2021 档案

摘要:数据库锁分类和总结 weixin_39651041 2018-04-18 15:11:28 32008 收藏 128 分类专栏: 数据库 文章标签: 锁 数据库 版权 锁 锁是网络数据库中的一个非常重要的概念,当多个用户同时对数据库并发操作时,会带来数据不一致的问题,所以,锁主要用于多用户环境下保证 阅读全文
posted @ 2021-01-30 14:58 foreast 阅读(100) 评论(0) 推荐(0) 编辑
摘要:1. Django默认用户认证系统 Django自带用户认证系统 它处理用户账号、组、权限以及基于cookie的用户会话。 Django认证系统位置 django.contrib.auth包含认证框架的核心和默认的模型。 django.contrib.contenttypes是Django内容类型系 阅读全文
posted @ 2021-01-27 20:57 foreast 阅读(344) 评论(0) 推荐(0) 编辑
摘要:1.在工程下创建包apps用于管理所有子应用 2.在apps包下创建应用users $ cd ~/projects/meiduo_project/meiduo_mall/meiduo_mall/apps $ python ../../manage.py startapp users 3. 注册use 阅读全文
posted @ 2021-01-25 23:37 foreast 阅读(376) 评论(0) 推荐(0) 编辑
摘要:Django框架配置文件位置: Django框架全局配置文件中定义了很多框架中用到的配置,在我们自己项目配置文件中的配置都可以在这个全局配置文件中找到对应的配置,可以理解为,我们的配置重写了全局配置文件中的配置 阅读全文
posted @ 2021-01-25 22:21 foreast 阅读(158) 评论(0) 推荐(0) 编辑
摘要:1. 工程配置文件中配置静态路由喝静态文件路径 # 静态资源路由 STATIC_URL = '/static/' # 配置静态文件加载路径 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] 说明:当路由匹配到配置的静态资源路由后,Django 阅读全文
posted @ 2021-01-25 22:07 foreast 阅读(40) 评论(0) 推荐(0) 编辑
摘要:1.setting中日志配置: # 日志配置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, # 是否禁用已经存在的日志器 'formatters': { # 日志信息显示的格式,可定义多个 'verbose': { 'for 阅读全文
posted @ 2021-01-25 21:52 foreast 阅读(575) 评论(0) 推荐(0) 编辑
摘要:1. 安装django-redis扩展包 pip install django-redis django-redis使用说明文档:django-redis文档 2. settings.py文件中配置Redis数据库 CACHES = { "default": { # 默认 "BACKEND": "d 阅读全文
posted @ 2021-01-25 21:21 foreast 阅读(424) 评论(0) 推荐(0) 编辑
摘要:1. 安装Jinja2扩展包 pip install Jinja2 2. 配置Jinja2模板引擎 1.在主工程下创建存放模板的文件夹: 标记文件夹为模板文件夹并设置模板语言为jinja2, 做了这一步后,在模板中写代码会有提示 配置jinja2引擎和模板路径 TEMPLATES = [ { 'BA 阅读全文
posted @ 2021-01-23 21:45 foreast 阅读(689) 评论(0) 推荐(0) 编辑
摘要:配置文件区分环境原因: 不同环境比如开发环境,测试环境、生产环境等,配置文件时不一样的,为了开发和部署的方便,将不同环境的配置放在不同的文件中,便于管理 Django项目中可以在项目中定义一个专门文件夹用于存放配置文件: 说明: 上面图片中的settings包用于存放配置文件 dev.py为开发环境 阅读全文
posted @ 2021-01-23 13:36 foreast 阅读(885) 评论(0) 推荐(0) 编辑
摘要:ES6语法 变量声明 var:它是用来声明变量的。如果在方法中声明,则为局部变量;如果在全局中声明,则为全局变量。 var num=10 let:ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a = 10; var b 阅读全文
posted @ 2021-01-21 22:57 foreast 阅读(40) 评论(0) 推荐(0) 编辑
摘要:1.vue: Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 阅读全文
posted @ 2021-01-21 22:50 foreast 阅读(102) 评论(0) 推荐(0) 编辑
摘要:CSRF CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。 CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。 包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账...... 造成的问题:个人隐私泄露以及财产安全。 CSRF攻击示意 阅读全文
posted @ 2021-01-20 00:01 foreast 阅读(224) 评论(0) 推荐(0) 编辑
摘要:Django使用jinja2模板 Jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,尤其是Flask框架内置的模板语言 由于django默认模板引擎功能不齐全,速度慢,所以我们也 阅读全文
posted @ 2021-01-19 22:11 foreast 阅读(189) 评论(0) 推荐(0) 编辑
摘要:中间件(相当于java中的拦截器) Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。 中间件类似于java中的拦截器。实现在浏览器发送请求后到 阅读全文
posted @ 2021-01-19 20:46 foreast 阅读(93) 评论(0) 推荐(0) 编辑
摘要:1. 类中定义私用属性和方法 在属性和方法名称前加"__"这个属性和方法就变成了私有成员,私有成员在外部无法直接调用 class C(): def __init__(self): self.name = "C" self.__age = 18 def __fn4(self): print("fn4" 阅读全文
posted @ 2021-01-19 00:25 foreast 阅读(630) 评论(0) 推荐(0) 编辑
摘要:类视图使用 1.定义类视图 在Django中也可以使用类来定义一个视图,称为类视图。 使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。如下所示 from django.views.generic import View class RegisterView(View): """类视 阅读全文
posted @ 2021-01-18 22:34 foreast 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1.概念: 保存在服务器的数据叫做 session session需要依赖于cookie 2. Django中开启session 可以在settings.py文件中查看,如图所示 如需禁用session,将上图中的session中间件注释掉即可。 3 session存储方式 在settings.py 阅读全文
posted @ 2021-01-18 22:00 foreast 阅读(110) 评论(0) 推荐(0) 编辑
摘要:Cookie Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie是由服务器端生成,发送给User-Agent(一 阅读全文
posted @ 2021-01-17 23:13 foreast 阅读(52) 评论(0) 推荐(0) 编辑
摘要:HttpResponse对象 视图在接收请求并处理后,必须返回HttpResponse对象或子对象。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。 1 HttpResponse 可以使用django.http.HttpResponse来构造响应对象。 Ht 阅读全文
posted @ 2021-01-17 22:55 foreast 阅读(4544) 评论(0) 推荐(0) 编辑
摘要:1. URL路径参数 如果想从URL中获取值,需要在正则表达式中使用分组, 获取值分为两种方式 位置参数 参数的位置不能错 关键字参数 参数的位置可以变,跟关键字保持一致即可 注意:两种参数的方式不要混合使用,在一个正则表达式中只能使用一种参数方式 位置参数 应用中urls.py url(r'^(\ 阅读全文
posted @ 2021-01-17 21:23 foreast 阅读(1234) 评论(0) 推荐(0) 编辑
摘要:查看MySQL数据库日志 查看mysql数据库日志可以查看对数据库的操作记录。 mysql日志文件默认没有产生,需要做如下配置: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 把68,69行前面的#去除,然后保存并使用如下命令重启mysql服务。 sudo s 阅读全文
posted @ 2021-01-16 21:28 foreast 阅读(429) 评论(0) 推荐(0) 编辑
摘要:1 shell工具 Django的manage工具提供了shell命令,帮助我们配置好当前工程的运行环境(如连接好数据库等),以便可以直接在终端中执行测试python语句。 1. 进入虚拟环境,进入工程目录下,通过如下命令进入shell python manage.py shell 2. 测试执行p 阅读全文
posted @ 2021-01-15 00:42 foreast 阅读(138) 评论(0) 推荐(0) 编辑
摘要:1. 虚拟环境安装mysql的驱动包: pip install PyMySQL 2. 在Django的主工程目录下的__init__.py文件中添加如下语句,用于mysql驱动 import pymysql pymysql.install_as_MySQLdb() 作用是让Django的ORM能以m 阅读全文
posted @ 2021-01-15 00:27 foreast 阅读(124) 评论(0) 推荐(0) 编辑
摘要:一. 模型 Django框键中的模型遵循典型的ORM规则,模型对象对应数据库表,对象实例对应表中的一条记录,模型类属性对应表字段 二. 模型定义 1. 定义方法: 模型类被定义在"应用/models.py"文件中。 模型类必须继承自Model类,位于包django.db.models中。 属性的定义 阅读全文
posted @ 2021-01-14 22:16 foreast 阅读(161) 评论(0) 推荐(0) 编辑
摘要:一. 静态文件 静态文件包括:图片,js,css等文件,区别于模板文件 二. 静态文件位置 一般将静态文件放在项目单独文件夹中,然后再settings.py文件中配置文件夹的位置和静态资源路径 1.创建文件夹存放静态文件: 2. 主工程模块的settings.py文件中配置静态文件夹的路径 静态资源 阅读全文
posted @ 2021-01-14 21:07 foreast 阅读(156) 评论(0) 推荐(0) 编辑
摘要:设置超级管理员: 终端中进入虚拟环境中工程目录下,执行以下命令: python manage.py createsuperuser 后面输入用户名,邮箱,密码(至少8个字符)即可 (py3_django) D:\work\django_object\bookmanager>python manage 阅读全文
posted @ 2021-01-13 23:42 foreast 阅读(254) 评论(0) 推荐(0) 编辑
摘要:1. 定义模板文件 一般在项目根目录下创建一个文件夹(注意:不是包)存放模板文件 2. 主工程模块中配置模板的路径 在主工程目录下settings.py文件中,配置模板文件的路径 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django. 阅读全文
posted @ 2021-01-13 23:16 foreast 阅读(141) 评论(0) 推荐(0) 编辑
摘要:1. 定义视图 视图就是一个Python函数,被定义在应用的views.py中. 视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有请求信息. 视图必须返回HttpResponse对象,包含返回给请求者的响应信息. 需要导入HttpResponse模块 :from djan 阅读全文
posted @ 2021-01-13 22:44 foreast 阅读(171) 评论(0) 推荐(0) 编辑
摘要:""" Django settings for bookmanager project. Generated by 'django-admin startproject' using Django 1.11.11. For more information on this file, see htt 阅读全文
posted @ 2021-01-13 21:39 foreast 阅读(99) 评论(0) 推荐(0) 编辑
摘要:两种方法: 1. pytharm中的启动按钮(需提前配置,另外博文中有) 2.终端中使用命令启动 (py3_django) D:\work\django_object\bookmanager>python manage.py runserver Performing system checks... 阅读全文
posted @ 2021-01-13 21:21 foreast 阅读(79) 评论(0) 推荐(0) 编辑
摘要:1. 点击pycharm 右上角manager下拉框,现在 Edit Configurations 2. 配置启动命令, 点击“OK” 3. 这样就可以点击启动按钮启动项目了,实际执行的是:D:\work\Envs\py3_django\Scripts\python.exe D:/work/djan 阅读全文
posted @ 2021-01-13 21:14 foreast 阅读(947) 评论(0) 推荐(0) 编辑
摘要:使用Django进行数据库开发的提示 : MVT设计模式中的Model, 专门负责和数据库交互.对应(models.py) 由于Model中内嵌了ORM框架, 所以不需要直接面向数据库编程. 而是定义模型类, 通过模型类和对象完成数据库表的增删改查. ORM框架就是把数据库表的行与相应的对象建立关联 阅读全文
posted @ 2021-01-11 23:46 foreast 阅读(143) 评论(0) 推荐(0) 编辑
摘要:一. 创建Django项目 1. 创建虚拟环境,进入虚拟环境(虚拟环境创建在其他文章中有) workon py3_django 2. 安装django包 pip install django==1.11.11 说明:安装时可能报错,需要使用豆瓣代理: pip install -i https://p 阅读全文
posted @ 2021-01-11 23:06 foreast 阅读(180) 评论(0) 推荐(0) 编辑
摘要:1.虚拟环境概念: 虚拟环境是指一个主机上虚拟的相对独立的运行环境,使得单个项目的运行环境与其它项目互不影响. 2. python为什么要用虚拟环境: 在python中,要使用某个工具包时,通过 sudo pip install 工具 进行安装,这种安装方式会将工具包安装到/usr/local/li 阅读全文
posted @ 2021-01-11 00:11 foreast 阅读(182) 评论(0) 推荐(0) 编辑
摘要:1.安装包: pip install redis-py-cluster 2.使用: import rediscluster if __name__ == '__main__': # 配置集群中的节点, 至少配置一个,建议配置多个 startup_nodes = [{'host': '192.168. 阅读全文
posted @ 2021-01-09 19:14 foreast 阅读(535) 评论(0) 推荐(0) 编辑
摘要:为什么要有集群 之前我们已经讲了主从的概念,一主可以多从,如果同时的访问量过大(1000w),主服务肯定就会挂掉,数据服务就挂掉了或者发生自然灾难 大公司都会有很多的服务器(华东地区、华南地区、华中地区、华北地区、西北地区、西南地区、东北地区、台港澳地区机房) 集群的概念: 集群是一组相互独立的、通 阅读全文
posted @ 2021-01-09 19:04 foreast 阅读(83) 评论(0) 推荐(0) 编辑
摘要:主从概念 ⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构 master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1 通过主从配置可以实现读写分离 master和slave都是一个redis实例(redis 阅读全文
posted @ 2021-01-09 14:57 foreast 阅读(79) 评论(0) 推荐(0) 编辑
摘要:安装redis模块 pip install redis redis的使用: import redis rs = redis.Redis(host='192.168.1.109', port=6379) rs.set("name", 'liuxuelin') print(rs.get("name")) 阅读全文
posted @ 2021-01-09 14:52 foreast 阅读(69) 评论(0) 推荐(0) 编辑
摘要:redis 安装 redis稳定版本4.0.9下载链接: http://download.redis.io/releases/redis-4.0.9.tar.gz step1:下载 wget http://download.redis.io/releases/redis-4.0.9.tar.gz s 阅读全文
posted @ 2021-01-09 10:20 foreast 阅读(46) 评论(0) 推荐(0) 编辑
摘要:1. re模块的介绍 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个 re 模块 # 导入re模块 import re # 使用match方法进行匹配操作 result = re.match(正则表达式,要匹配的字符串) # 如果上一步匹配到数据的话,可以使用group方法来 阅读全文
posted @ 2021-01-07 22:42 foreast 阅读(119) 评论(0) 推荐(0) 编辑
摘要:使用copy完成拷贝: import copy # 使用浅拷贝需要导入copy模块 1. 浅拷贝 copy函数是浅拷贝,只对可变类型的第一层对象进行拷贝,对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象。 import copy # 使用浅拷贝需要导入copy模块 # 不可变类型有: 阅读全文
posted @ 2021-01-07 22:23 foreast 阅读(188) 评论(0) 推荐(0) 编辑
摘要:1.生成器 根据程序员制定的规则循环生成数据,当条件不成立时则生成数据结束。数据不是一次性全部生成处理,而是使用一个,再生成一个,可以节约大量的内存。 两种方式创建生成器 生成器推导式 yield 关键字 2.生成器推导式方式创建生成器: 与列表推导式类似,只不过生成器推导式使用小括号 # 创建生成 阅读全文
posted @ 2021-01-07 22:05 foreast 阅读(82) 评论(0) 推荐(0) 编辑
摘要:1. 上下文管理器 一个类只要实现了__enter__()和__exit__()这个两个方法,通过该类创建的对象我们就称之为上下文管理器。 上下文管理器可以结合with语句实现简洁而强大的功能 2.定义上下文管理器对象 class File(object): # 初始化方法 def __init__ 阅读全文
posted @ 2021-01-07 21:33 foreast 阅读(94) 评论(0) 推荐(0) 编辑
摘要:1. property的作用 property是一个类,可以把一个方法当做属性进行使用,这样做可以简化代码使用。 实际上就是装饰类中属性的getter setter方法,使得属性可以通过 对象.属性 的方式获取或设置 使用property的两种方式 装饰器方式 类属性方式 2. 装饰器方式 @pro 阅读全文
posted @ 2021-01-07 20:59 foreast 阅读(1768) 评论(0) 推荐(1) 编辑
摘要:1. logging日志的使用 python中,可以使用 logging 这个包来完成日志记录 在 logging 包中记录日志的方式有两种: 输出到控制台 保存到日志文件 日志信息输出到控制台的示例代码: import logging logging.debug('这是一个debug级别的日志信息 阅读全文
posted @ 2021-01-07 20:36 foreast 阅读(117) 评论(0) 推荐(0) 编辑
摘要:Python程序操作MySQL数据库 安装pymysql第三方包: sudo pip3 install pymysql 说明: 安装命令使用 sudo pip3 install 第三方包名 卸载命令使用 sudo pip3 uninstall 第三方包 大家现在使用的虚拟机已经安装了这个第三方包,可 阅读全文
posted @ 2021-01-05 23:21 foreast 阅读(516) 评论(0) 推荐(0) 编辑
摘要:1. 装饰器的定义 就是给已有函数增加额外功能的函数,它本质上就是一个闭包函数。 装饰器的功能特点: 不修改已有函数的源代码 不修改已有函数的调用方式 给已有函数增加额外的功能 2.装饰器代码 # 添加一个登录验证的功能 def decorator(fn): def inner(): print(" 阅读全文
posted @ 2021-01-05 21:27 foreast 阅读(54) 评论(0) 推荐(0) 编辑
摘要:1. 闭包的定义: 在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。 2. 通过闭包的定义,我们可以得知闭包的形成条件: 在函数嵌套(函数里面再定义函数)的前提下 内部函数使用了外部函数的变量(还包括外部函数的参数) 外部函 阅读全文
posted @ 2021-01-05 20:08 foreast 阅读(77) 评论(0) 推荐(0) 编辑
摘要:HTTP 请求报文 1. HTTP 请求报文介绍 HTTP最常见的请求报文有两种: GET 方式的请求报文 POST 方式的请求报文 说明: GET: 获取web服务器数据 POST: 向web服务器提交数据 2. HTTP GET 请求报文分析 HTTP GET 请求报文效果图: GET 请求报文 阅读全文
posted @ 2021-01-04 21:47 foreast 阅读(87) 评论(0) 推荐(0) 编辑
摘要:一. 客户端程序: 开发 TCP 客户端程序开发步骤回顾 创建客户端套接字对象 和服务端套接字建立连接 发送数据 接收数据 关闭客户端套接字 2. socket 类的介绍 导入 socket 模块 import socket 创建客户端 socket 对象 socket.socket(Address 阅读全文
posted @ 2021-01-04 20:53 foreast 阅读(78) 评论(0) 推荐(0) 编辑
摘要:一. 线程: 线程是进程中执行代码的一个分支,每个执行分支(线程)要想工作执行代码需要cpu进行调度 ,也就是说线程是cpu调度的基本单位,每个进程至少都有一个线程,而这个线程就是我们通常说的主线程。 二. 线程的使用: 1. 导入线程模块 #导入线程模块 import threading 2. 线 阅读全文
posted @ 2021-01-03 19:10 foreast 阅读(149) 评论(0) 推荐(0) 编辑
摘要:1 导入进程包 #导入进程包 import multiprocessing 2. Process进程类的说明 Process([group [, target [, name [, args [, kwargs]]]]]) group:指定进程组,目前只能使用None target:执行的目标任务名 阅读全文
posted @ 2021-01-03 19:04 foreast 阅读(188) 评论(0) 推荐(0) 编辑