Django项目
Odyssues_lee
人生苦短,我用Python!
展开
-
Django中的中间件机制和执行顺序
该文章转载至:https://blog.csdn.net/orangleliu/article/details/48316919什么是 middlewareMiddlewares 是修改 Django request 或者 response 对象的钩子. 下面是Django 文档中的一段描述。Middleware is a framework of hooks into Django...转载 2018-07-25 23:37:52 · 1145 阅读 · 0 评论 -
Python-Django-CORS跨域请求
跨域CORS我们为前端和后端分别设置了两个不同的域名位置 域名前端 www.meiduo.site后端 api.meiduo.site现在,前端与后端分处不同的域名,我们需要为后端添加跨域访问的支持。我们使用CORS来解决后端对跨域访问的支持。使用django-cors-headers扩展参考文档https://github.com/ottoyiu/django-cors-headers/安装pi...原创 2018-06-28 00:09:27 · 1755 阅读 · 0 评论 -
Python-Django用户注册模块-短信验证码
创建一个新应用verifications,在此应用中实现短信验证码。1. 业务处理流程 检查图片验证码 检查是否在60s内有发送记录 生成短信验证码 保存短信验证码与发送记录 发送短信2. 后端接口设计:sms_codes(短信验证码变量) 访问方式: GET /sms_codes/(?P<mobile>1[3-9]\d{9})/?image_cod...原创 2018-06-28 00:05:37 · 3641 阅读 · 0 评论 -
Python-Django用户注册模块-图片验证码
创建一个新应用verifications,在此应用中实现图片验证码。1. 后端接口设计: 访问方式: GET /image_codes/(?P<image_code_id>[\w-]+)/ 请求参数 参数 类型 是否必须 说明 image_code_id ...原创 2018-06-27 23:44:07 · 910 阅读 · 0 评论 -
Python-Django封装的用户模型类
一、Django认证系统同时处理认证和授权。简单地讲,认证验证一个用户是否它们声称的那个人,授权决定一个通过了认证的用户被允许做什么。 这里的词语“认证”同时指代这两项任务,即Django的认证系统同时提供了认证机制和权限机制。二、Django的认证系统包含: 用户 权限:二元(是/否)标志指示一个用户是否可以做一个特定的任务。 组:对多个用户运用标签和权限的一种通用的方式。 ...原创 2018-06-27 21:02:04 · 1430 阅读 · 0 评论 -
数据库读写分离之配置Django实现数据库读写分离
配置Django实现数据库读写分离django在进行数据库操作的时候,读取数据与写数据(增、删、改)可以分别从不同的数据库进行操作。1. 在配置文件中增加slave数据库的配置DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', ...原创 2018-07-09 21:57:10 · 1952 阅读 · 0 评论 -
关于REST framework 中的Request 与 Response的分析
Request 与 Response1. RequestREST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Type指明的请求数据类型(如JSON、表单...原创 2018-07-03 10:47:12 · 3541 阅读 · 0 评论 -
Django-Rest Framework 的安装与配置
环境安装与配置DRF需要以下依赖:Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)Django (1.10, 1.11, 2.0)DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)1. 安装DRFpip install djangorestframework2....原创 2018-07-03 10:43:44 · 7171 阅读 · 0 评论 -
Django REST framework 简介
Django REST framework 简介在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增、删、改、查的实现流程基本套路化,所以这部分代码也是可以复用简化编写的:增:校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列...原创 2018-07-03 10:40:39 · 1324 阅读 · 0 评论 -
Python-Django-Celery异步配置发送短信介绍
Celery完成发送短信1-在meiduo/meiduo_mall下创建celery_tasks用于保存celery异步任务。2-在celery_tasks目录下创建config.py文件,用于保存celery的配置信息 # celery服务器的配置 # 指定谁加入cerery的任务队列 # 注意不是borker 14是默认端口 broker_url = "redis:/...原创 2018-06-28 00:26:59 · 1416 阅读 · 0 评论 -
Python-Django用户注册-判断账户是否存在
判断帐号是否存在1. 判断用户名是否存在后端接口设计:请求方式: GET usernames/(?P<username>\w{5,20})/count/请求参数: 路径参数参数 类型 是否必传 说明username str 是 用户名返回数据: JSON{ "username": "itcast", "count": "1"}返回值 类型 是否必须 说明username s...原创 2018-06-28 00:45:52 · 6137 阅读 · 0 评论 -
Python-Django-注册模块-表单的提交
注册模块-表单的提交1. 后端接口设计:请求方式: POST /users/请求参数: JSON 或 表单参数名 类型 是否必须 说明username str 是 用户名password str 是 密码password2 str 是 ...原创 2018-06-28 00:54:07 · 613 阅读 · 0 评论 -
Docker应用场景总结
该文章转载至:https://blog.csdn.net/wangtaoking1/article/details/45045479学习Docker也有一段时间了,了解了Docker的基本实现原理,也知道了Docker的使用方法,这里对Docker的一些典型应用场景做一个总结吧。如果发现有新的应用场景,再对笔记进行更新。当前,Docker主要还使用在简化开发流程和运维上面,貌似还算不上云计...转载 2018-07-25 23:32:28 · 814 阅读 · 0 评论 -
Django 中间件的研究
该文章转载至:https://blog.csdn.net/babados/article/details/76309567开篇 中间件是什么? 中间件的本质是一个类实例对象或者一个函数对象,这些对象提供过滤请求、响应、处理异常等功能。重点关键字:过滤1 中间件可以是类的形式也可以是函数的形式,见官网说明 上结论先 从请求到响应阶段 都可以进行拦截第一阶段 处...转载 2018-07-25 23:31:07 · 510 阅读 · 0 评论 -
关于permission-class, def perform_authentication(self, request) 和authentication_class之间的关系
--------authentication_classes:代码如下:class APIView(View): # The following policies may be set at either globally, or per-view. renderer_classes = api_settings.DEFAULT_RENDERER_CLASSES pars...原创 2018-07-07 10:02:27 · 2418 阅读 · 3 评论 -
关于json,pickle,itsdangerous中的loads\dumps的对比分析
一、json中的json.dumps和json.loads: json.dumps(): 将一个Python数据类型进行json格式的编码解析(dict转成str) json.loads():将json格式的基于字典的字符串转换成Python数据类型(str转成dict)import jsondata_dict = {"name": "xxx", "gender": "femal...原创 2018-07-05 09:49:19 · 1357 阅读 · 0 评论 -
关于TypeError: unorderable types: int() > DeferredAttribute()
> DeferredAttribute TypeError:unorderable类型:int()()的BUGBUG报错如下图:经过排除,是由于赋值的原因造成的!if count > sku.stock: pass这种错误老是出现,记下来,希望以后可以不再同一个坑掉俩次!...原创 2018-07-04 11:15:53 · 1285 阅读 · 0 评论 -
Python-Django-JWT的实际使用实例
Django REST framework JWT一、安装配置1-安装pip install djangorestframework-jwt2-配置REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication...原创 2018-06-28 01:15:16 · 5642 阅读 · 1 评论 -
Python-Django-JWT的初步了解
JWT一、JWT概述 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,...原创 2018-06-28 01:07:25 · 1077 阅读 · 0 评论 -
REST接口开发的核心任务
明确REST接口开发的核心任务分析一下上节的案例,可以发现,在开发REST API接口时,视图中做的最主要有三件事:将请求的数据(如JSON格式)转换为模型类对象操作数据库将模型类对象转换为响应的数据(如JSON格式)序列化Serialization维基百科中对于序列化的定义:序列化(serialization)在计算机科学的资料处理中,是指将数据结构或物件状态转换成可取用格式(例如存成档案,存于...原创 2018-07-03 10:38:53 · 1094 阅读 · 0 评论 -
RESTful设计方法
RESTful设计方法1. 域名应该尽量将API部署在专用域名之下。https://api.example.com如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。https://example.org/api/2. 版本(Versioning)应该将API的版本号放入URL。http://www.example.com/app/1.0/foohttp://www.exampl...原创 2018-07-03 10:40:57 · 451 阅读 · 0 评论 -
Python-Django支付模块--支付宝支付(一)
1-创建应用paymentcd apps/python ../../manage.py startapp payment2-创建数据库模型类from django.db import modelsfrom meiduo_mall.utils.models import BaseModelfrom orders.models import OrderInfo# Create your mo...原创 2018-07-09 18:55:16 · 1554 阅读 · 0 评论 -
使用haystack对接Elasticsearch
Haystack为Django提供了模块化的搜索。它的特点是统一的,熟悉的API,可以让你在不修改代码的情况下使用不同的搜索后端(比如 Solr, Elasticsearch, Whoosh, Xapian 等等)。我们在django中可以通过使用haystack来调用Elasticsearch搜索引擎。1)安装pip install drf-haystackpip install elasti...原创 2018-07-02 23:57:51 · 2789 阅读 · 7 评论 -
使用Docker安装Elasticsearch及其扩展
1、获取镜像,可以通过网络pulldocker image pull delron/elasticsearch-ik:2.4.6-1.0或者加载提供给大家的镜像文件docker load -i elasticsearch-ik-2.4.6_docker.tar2、修改elasticsearch的配置文件 elasticsearc-2.4.6/config/elasticsearch.yml第5...原创 2018-07-02 23:53:35 · 1865 阅读 · 0 评论 -
Django REST framework中使用缓存-通过drf-extensions扩展来实现
使用缓存省市区的数据是经常被用户查询使用的,而且数据基本不变化,所以我们可以将省市区数据进行缓存处理,减少数据库的查询次数。在Django REST framework中使用缓存,可以通过drf-extensions扩展来实现。关于扩展使用缓存的文档,可参考链接http://chibisov.github.io/drf-extensions/docs/#caching安装pip install d...原创 2018-07-01 10:49:54 · 4278 阅读 · 0 评论 -
使用Docker安装FastDFS(分布式文件系统)
1. 获取镜像可以利用已有的FastDFS Docker镜像来运行FastDFS。获取镜像可以通过下载docker image pull delron/fastdfs也可是直接使用提供的镜像备份文件docker load -i 文件路径/fastdfs_docker.tar(提前打包好的)加载好镜像后,就可以开启运行FastDFS的tracker和storage了。2. 运行tracker执行...原创 2018-06-30 00:09:41 · 2713 阅读 · 2 评论 -
django为主页静态化添加定时任务的技术实现
定时任务对于首页的静态化,考虑到页面的数据可能由多名运营人员维护,并且经常变动,所以将其做成定时任务,即定时执行静态化。在Django执行定时任务,可以通过django-crontab扩展来实现。安装pip install django-crontab添加应用INSTALLED_APPS = [ ... 'django_crontab', # 定时任务 ...]设置...原创 2018-07-01 09:36:28 · 871 阅读 · 0 评论 -
CKEditor富文本编辑器在Python中的应用
在运营后台,运营人员需要录入商品并编辑商品的详情信息,而商品的详情信息不是普通的文本,可以是包含了HTML语法格式的字符串。为了快速简单的让用户能够在页面中编辑带格式的文本,我们引入富文本编辑器。富文本即具备丰富样式格式的文本。我们使用功能强大的CKEditor富文本编辑器。富文本编辑器1. 安装pip install django-ckeditor2. 添加应用在INSTALLED_APPS中添...原创 2018-07-01 08:51:38 · 2737 阅读 · 2 评论 -
django主页静态化处理的技术实现
商城的主页频繁被访问,为了提升访问速度,除了使用缓存技术外,还可以使用页面静态化技术。页面静态化即将动态渲染生成的页面结果保存成html文件,放到静态文件服务器中。用户访问的时候访问的直接是处理好之后的html静态文件。对于页面中属于每个用户展示不同数据内容的部分,可以在用户请求完静态化之后的页面后,在页面中向后端发送请求,获取属于用户的特殊的数据(用户名,头像,昵称.....)。页面静态化处理:...原创 2018-07-01 09:26:21 · 1578 阅读 · 0 评论 -
Python-Django支付模块--支付宝支付(二)
接入支付宝支付宝开发平台登录https://open.alipay.com/platform/home.htm沙箱环境是支付宝提供给开发者的模拟支付的环境跟真实环境是分开的沙箱应用:https://docs.open.alipay.com/200/105311沙箱账号:https://openhome.alipay.com/platform/appDaily.htm?tab=account支付宝开...原创 2018-07-09 18:59:19 · 1260 阅读 · 0 评论 -
Python-Django支付模块--支付宝支付(三)
发起支付1. 后端接口设计请求方式: GET /orders/(?P<order_id>\d+)/payment/请求参数: 路径参数参数类型是否必须说明order_idstr是订单编号返回数据: JSON返回值类型是否必须说明alipay_urlstr是支付宝支付链接2. 后端实现在payment/views.py中创建视图在配置文件中编辑支付宝的配置信息# 支付宝ALIPAY_A...原创 2018-07-09 19:05:24 · 889 阅读 · 2 评论 -
Python-Django支付模块--支付宝支付(四)
保存支付结果用户支付成功后,支付宝会将用户重定向到http://www.meiduo.site:8080/pay_success.html,并携带支付结果数据前端页面将此数据发送给后端,后端检验并保存支付结果1. 后端接口设计请求方式: PUT /payment/status/?支付宝参数请求参数: 查询字符串参数, 见上面表格返回数据: JSON返回值类型是否必须说明trade_idstr否支付...原创 2018-07-09 19:06:55 · 1245 阅读 · 0 评论 -
认识RESTful
认识RESTful在前后端分离的应用模式里,后端API接口如何定义?例如对于后端数据库中保存了商品的信息,前端可能需要对商品数据进行增删改查,那相应的每个操作后端都需要提供一个API接口:POST /add-goods 增加商品POST /delete-goods 删除商品POST /update-goods 修改商品GET /get-goods 查询商品信息对于接口的请求方式与路径,每个后端开发...原创 2018-07-03 10:36:53 · 428 阅读 · 0 评论 -
Python-Django用户登录模块--QQ登录(四)
绑定用户身份接口如果用户是首次使用QQ登录,则需要绑定用户,页面如下:业务逻辑:用户需要填写手机号、密码、图片验证码、短信验证码如果用户未在美多商城注册过,则会将手机号作为用户名为用户创建一个美多账户,并绑定用户如果用户已在美多商城注册过,则检验密码后直接绑定用户绑定QQ身份的处理流程后端接口设计请求方式: POST /oauth/qq/user/请求参数: JSON 或 表单参数类型是否必须说明...原创 2018-07-03 09:31:30 · 822 阅读 · 0 评论 -
Python-Django用户登录模块--QQ登录(三)
QQ登录回调处理用户在QQ登录成功后,QQ会将用户重定向回我们配置的回调callback网址,在本项目中,我们申请QQ登录开发资质时配置的回调地址为:http://www.meiduo.site:8080/oauth_callback.html我们在front_end_pc目录中新建oauth_callback.html文件,用于接收QQ登录成功的用户回调请求。在该页面中,提供了用于用户首次使用...原创 2018-07-03 09:28:04 · 935 阅读 · 0 评论 -
Python-Django用户登录模块--QQ登录(二)
返回QQ登录网址的视图1. 后端接口设计:请求方式: GET /oauth/qq/authorization/?next=xxx请求参数: 查询字符串参数名类型是否必须说明nextstr否用户QQ登录成功后进入美多商城的哪个网址返回数据: JSON{ "login_url": "https://graph.qq.com/oauth2.0/show?which=Login&displ...原创 2018-07-03 09:11:54 · 703 阅读 · 0 评论 -
Python-Django用户登录模块--QQ登录(一)
QQ登录,亦即我们所说的第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目。若想实现QQ登录,需要成为QQ互联的开发者,审核通过才可实现。注册方法可参考链接http://wiki.connect.qq.com/%E6%88%90%E4%B8%BA%E5%BC%80%E5%8F%91%E8%80%85成为QQ互联开发者后,还需创建应用,即获取本项目对应与QQ互联的应...原创 2018-07-03 09:08:58 · 2351 阅读 · 0 评论 -
Python-Django:项目创建工程必备流程
创建项目前的最简单,最顺畅的办法1. 在git平台创建工程 1) 创建私有项目库 2)克隆项目到本地 3)创建并切换分支到dev2. 添加前端文件 1) 安装node.js的版本控制工具nvm,在终端中执行(服务器live-server作为前端开发服务器使用) curl -o- https://raw.githubusercontent.com/creationix/n...原创 2018-06-27 20:15:50 · 578 阅读 · 0 评论 -
Python-Django:项目settings详细配置
1. 修改settings/dev.py 文件中的路径信息 import os# Build paths inside the project like this: os.path.join(BASE_DIR, ...)# E:\meiduo\meiduo_all\meiduo_allimport datetimeBASE_DIR = os.path.dirname(os.path.dirname...原创 2018-06-27 20:41:35 · 3120 阅读 · 0 评论 -
Django-Xadmin的安装和应用
Xadminxadmin是Django的第三方扩展,可是使Django的admin站点使用更方便。1. 安装通过如下命令安装xadmin的最新版pip install https://github.com/sshwsfc/xadmin/tarball/master在配置文件中注册如下应用INSTALLED_APPS = [ ... 'xadmin', 'crispy_for...原创 2018-07-09 20:53:05 · 984 阅读 · 0 评论