自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 docker与git相关的简单命令

1.安装docker遇到的问题:安装 Docker Desktop Installer.exe 时会要求下载Linux内核更新包, 下载链接:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IDr5gbW5-1603713451861)(C:\Users\55390\AppData\Local\Temp\1603700261601.png)]下载,安装即可

2020-10-26 19:59:54 385

原创 Django + Uwsgi + Nginx 的生产环境部署

1.安装python3# 1、yum更新yum源yum update# 2、安装Python 3.7所需的依赖否则安装后没有pip3包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make# 3、在官网下载所需版本,这里用的是3.7.0版本wget https://www.python.org/ftp/3.7.

2020-10-21 07:53:55 195 1

原创 wsgi-uwsgi-nginx理论

1. 概念1.1 web容器作用(处理请求,返回数据)第一,帮助django服务端处理客户端连接,官方号称可以处理10万(实现高并发)第二,帮助处理静态资源请求(html、css、JS),返回给客户端浏览器(django等web服务 器处理静态资源能力差)常见web容器nginxLNMPL:LInuxN:NginxM:MySQLP: php apache(PHP)LAMPL:LInuxA:ApacheM:MySQLP: php Tomcat(JA

2020-10-21 07:45:22 287 1

原创 创建订单并生成支付链接接口

1.接口1.1 1.1 goods/urls.py中注册路由urlpatterns = [ path('getpayurl/', views.PayUrlView.as_view()), # /goods/getpayurl/]1.2 1.2 goods/views.py 中写视图函数from rest_framework.views import APIViewfrom rest_framework.permissions import AllowAny, IsAuthenticated

2020-10-15 16:18:14 926

原创 通过课程查询商品信息

1.修改/course/sourse/1/ 返回的数据1.1 course/serializer.py添加商品信息序列化\# 添加显示商品字段from goods.serializers import GoodsSerializer class CourseDeepSerializer(CourseSerializer): goods_set = GoodsSerializer(many=True) chapters = ChaptersSerializer(many=True)1.2 1

2020-10-15 16:10:12 128

原创 支付宝支付原理

1. 支付宝支付流程https://www.lanqiao.cn/vip 2. 新建支付宝应用# 访问"支付宝开发平台"登录, 可以访问开发者中心https://open.alipay.com/platform/home.htm # 可以参考"电脑网站支付" 熟悉电脑支付整体流程https://docs.open.alipay.com/270/105899/2.1 第一步:创建应用(这里使用沙箱环境测试)沙箱环境说明线上环境需要创建应用,因为我们不是企业,没有资质,所以只能

2020-10-14 21:48:50 937

原创 商品模块表结构

1. 表结构分析1.1 Goods/models.py商品模块表结构from django.db import modelsfrom course.models import Base# Create your models here.class Goods(Base): GOODS_TYPE = ( ('1', 'Vip'), ('2', 'Course') ) CHANNEL_TYPE = ( ('1', '普通'),

2020-10-14 21:36:14 157

原创 七牛云上传图片后端接口

class QNYTokenView(APIView): permission_classes = (AllowAny,) def get(self,request): # -*- coding: utf-8 -*- # flake8: noqa from qiniu import Auth # 需要填写你的 Access Key 和 Secret Key access_key = 'HA1Jmc-dzHCejS

2020-10-14 21:27:58 565

原创 课程模块url

# -*- coding: utf-8 -*-from django.urls import pathfrom . import viewsfrom rest_framework.routers import DefaultRouterrouter = DefaultRouter()router.register(r'type',views.CourseTypeViewSet)router.register(r'tag',views.CourseTagViewSet)router.regis

2020-10-12 21:51:26 153

原创 课程模块view

from django.shortcuts import renderfrom django_filters.rest_framework import DjangoFilterBackendfrom rest_framework import viewsetsfrom rest_framework.filters import OrderingFilterfrom user.views import PageNumfrom course.models import *from course.s

2020-10-12 21:50:52 155

原创 实验楼课程序列化

# -*- coding: utf-8 -*-from rest_framework.serializers import ModelSerializerfrom .models import *class CourseTagSerializer(ModelSerializer): class Meta: model = CourseTag fields = '__all__'class CourseSerializer(ModelSerializer

2020-10-12 21:49:20 189

原创 序列化器的正反向查找

1.正向查找from rest_framework import serializersfrom users.models import UserInfoclass UserInfoSerializer(serializers.Serializer): name = serializers.CharField(min_length=3,max_length=20) # 显示普通字段 ut = serializers.CharField(source='ut

2020-10-12 21:41:08 199

原创 表结构基类写法

class Base(models.Model): create_time = models.DateTimeField('创建时间', auto_now_add=True, null=True) update_time = models.DateTimeField('更新时间', auto_now=True, null=True) class Meta: abstract = True

2020-10-12 21:38:25 102

原创 vue微博回调空页面

注:微博回调空页面为:http://127.0.0.1:8888/oauth/callback/1.1 页面路径 components\oauth.vue<template> <div> <div v-show='visiable'> 绑定用户 用户名: <input type="text" v-model="username" @blur="check_username" &gt

2020-10-11 21:36:30 115

原创 vue微博回调空页面

1. vue微博回调空页面注:微博回调空页面为:http://127.0.0.1:8888/oauth/callback1.1 页面路径 components\oauth.vue<template> <div> <p>跳转中 </p> </div></template><script> import {oauth_callback_post} from './axios_api/api'

2020-10-11 21:33:46 100

原创 vue获取微博权限

1. 在Vue页面加载时动态发送请求获取微博授权url1.1 在 components\common\lab_header.vue 中写oauth动态获取微博授权URL// 获取微博登录地址oauth() { // 从后端获取 微博登录地址 oauth_post().then((resp) => { console.log(resp) //{'code': '0', 'msg': '成功', 'data': {'url': url}} let url = resp.data.url; t

2020-10-11 21:27:11 278

原创 三方登录绑定用户接口

1.1 oauth/urls.py 中添加路由urlpatterns = [ path('weibo/binduser/', views.OauthWeiboBindUser.as_view()), #/oauth/weibo/callback/]1.2 oauth/views.py中添加试图函数class OauthWeiboBindUser(APIView): permission_classes = (AllowAny,) def post(self, request)

2020-10-09 19:42:00 174

原创 微博回调接口

1.1 oauth/urls.py中添加路由urlpatterns = [ path('weibo/callback/', views.OauthWeiboCallback.as_view()), #/oauth/weibo/callback/]1.2 oauth/views.py中添加视图函数http://192.168.56.100:8888/oauth/weibo/callback/# 通过vue前端传入的code, 微博身份验证class OauthWeiboCallback(A

2020-10-09 19:37:50 159

原创 生成微博授权URL接口

1.创建apps/oauth 模块进行oauth认证'''2.1 在apps文件夹下新建应用: oauth''' cd syl/appspython ../manage.py startapp oauth # 切换到apps文件夹下执行创建命令'''2.2 添加子路由: oauth/urls.py''' from django.urls import pathfrom . import views urlpatterns = []'''2.3 在syl/settings.py中添加应用

2020-10-09 19:20:42 135

原创 微博三方登录账号注册

新浪微博开放平台: https://open.weibo.com/1. 注册账号注册新浪微博账号进入首页。创建网站接入的应用: https://open.weibo.com/选择立即接入,进入到创建应用页面创建应用基本信息页面: https://open.weibo.com/apps/3516473472/info/advanced高级信息页面2. 接口文档查看接口文档https://open.weibo.com/wiki/授权机制说明

2020-10-09 19:04:09 478

原创 微博三方登录原理

1. 微博三方登录流程1.1 前端获取认证code在Vue页面加载时 动态发送请求获取微博授权urldjango收到请求的url后,通过微博 应用ID(client_id)和回调地址(redirect_uri) 动态当用户点击上面的url进行扫码,授权成功会 跳转我们的回调界面并附加code参数Vue获取到微博返回的code后,会 将code发送给django后端 (上面的redirect_uri)1.2 获取微博access_token后端获取code后,结合clie

2020-10-09 18:55:28 274

原创 vue检查用户名是否存在

1.vue检查用户名是否重复前端函数如下,js方法代码无需更改,前端代码逻辑在components\common\lab_header.vue只需要修改components\axios_api\http.js中调用的后端地址// axios.defaults.baseURL = "http://127.0.0.1:8000/"axios.defaults.baseURL = "http://192.168.56.100:8888/" // 检查用户名 是否使用

2020-10-08 16:46:54 2026

原创 vue发送短信逻辑

1.vue发送短信逻辑前端函数如下,js方法代码无需更改,前端代码逻辑在components\common\lab_header.vue只需要修改components\axios_api\http.js中调用的后端地址// axios.defaults.baseURL = "http://127.0.0.1:8000/"axios.defaults.baseURL = "http://192.168.56.100:8888/" // 获取手机验证码 sendco

2020-10-08 16:45:27 157

原创 redis的pipline使用

1. pipeline原理redis基本语法: https://www.cnblogs.com/xiaonq/p/7919111.htmlredis四篇: https://www.cnblogs.com/xiaonq/category/1544586.html1.1 redis发送数据原理Redis是建立在TCP协议基础上的CS架构,客户端client对redis server采取请求响应的方式交互。一般来说客户端从提交请求到得到服务器相应,需要传送两个tcp报文。设想这样的一个场景

2020-10-08 11:07:05 97

原创 celery原理与组件

1.Celery介绍https://www.cnblogs.com/xiaonq/p/11166235.html#i11.1 celery应用举例Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,如果你的业务场景中需要用到异步任务,就可以考虑使用celery你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执

2020-10-07 18:57:16 133

原创 短信验证接口大全套

1. 注册容联云账号1.1 注册账号https://www.yuntongxun.com/user/login1.2 登录即可看到开发者账号信息1.3 添加测试账号2. 使用容联云发送代码测试'''1. 安装容联云sdk'''pip install ronglian_sms_sdk# 免费测试文档地址:https://doc.yuntongxun.com/p/5a531a353b8496dd00dcdfe2'''2. 短信发送代码''' # libs/rl_sms.pyfrom

2020-10-07 18:39:02 2880

原创 Django图片验证码接口

1. django 缓存设置django的六种缓存(mysql+redis)https://www.cnblogs.com/xiaonq/p/7978402.html#i61.1 安装Django缓存模块 pip install django-redis==4.12.11.2 syl/settings 中配置缓存CACHES = { # django存缓默认位置,redis 0号库 # default: 连接名称 "default": { "BACKEN

2020-10-06 19:13:21 171

原创 Serializer及ModelSerializer的使用

1、 使用Serializer类serializer的基础使用DRF中的serializer就类似于Djano中的Form,只不过Form是针对模板的,而serializer是针对json,而且非常强大以以下代码为例class GoodsSerializer(serializers.ModelSerializer): # name = serializers.CharField(required=True,max_length=100) # click_num = serial

2020-10-06 11:45:10 626 1

原创 django基础

2,web项目工作流程2.1 了解web程序工作流程2.2 django生命周期3,django介绍简便、快速的开发数据库驱动的网站快速开发MVT功能齐全Django学习版本: 1.11.11开发数据驱动web网站(复杂业务逻辑) 数据分析后的结果展示界面, flask快速成型应用上线, 就用django4,Django设计模式(MVC/MTV)目的: 了解什么是MVC, MTV思考: 为什么要用设计模式分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植.

2020-10-06 11:45:03 278

原创 编写手机验证注册接口

1.编写注册接口1.1 user/urls.py 中添加路由urlpatterns = [ path('register/', views.RegisterView.as_view()), # 注册视图, /user/register/ ]1.2 user/view.py 中写注册视图函数class RegisterView(APIView): """ 用户注册, 权限是: 匿名用户可访问 """ # 自定义权限类 permission_classes

2020-10-06 11:44:52 605

原创 JWT安装配置

1. JWT安装配置1.1 安装JWTpip install djangorestframework-jwt==1.11.01.2 syL/settings.py 配置jwt载荷中的有效期设置# jwt载荷中的有效期设置JWT_AUTH = {# 1.token前缀: headers中 Authorization 值的前缀'JWT_AUTH_HEADER_PREFIX': 'JWT',# 2.token有效期: 一天有效'JWT_EXPIRATION_DELTA': datetime.t

2020-10-06 11:44:45 249

原创 JWT原理

1. COOKIE使用和优缺点https://www.cnblogs.com/xiaonq/p/11094480.html1.1 cookie原理: 用户名+密码cookie是保存在用户浏览器端,用户名和密码等明文信息1.2 session使用原理session是存储在服务器端的一段字符串,相当于字典的key用户向服务器发送用户名和密码。验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。服务器向用户返回session_id,session信息都会写入到用户的Cook

2020-10-06 11:44:05 224

原创 vue组件

1. 组件定义1. 定义组件并引用2. 父组件向子组件传值3. 子组件向父组件传值# 组件间传值: vuex ( https://www.cnblogs.com/xiaonq/p/9697921.html)1.1 什么是组件Html中有组件,是一段可以被复用的结构代码Css中有组件,是一段可以被复用的样式Js中有组件,是一段可以被复用的功能Vue中也有组件,指的就是一个模块,是一个独立的,完整的(包含html,css,js等),可以直接 拿来用的1.2 组件特性组件的实例化对象

2020-10-06 11:43:56 209 1

原创 封装axios请求

1、初始化环境#创建vue项目vue init webpack deaxios#安装axios组件npm install axios –S#安装vuex组件cnpm install vuex -S2、封装axios(创建 src/api 文件夹)export default { // api请求地址 // API_URL: 'http://mup.dev.yiducloud.cn/' API_URL: 'http://1.1.1.3:8888'import Axios fr

2020-10-06 11:43:49 231

原创 APIview+Serializer的使用

1、PIview使用转载至:https://www.cnblogs.com/xiaonq/p/10124104.htmlModelVIewSet 是对 APIView 封装ModelSerializer 是对 Serializer1.1 在 user/urls.py 中添加路由urlpatterns = [path('apiview/', views.UserInfoViewSet.as_view()),]1.2 创建user/serializers.py写序列化器seria...

2020-10-06 11:43:40 165

原创 RESTful风格API

1. RESTful风格API详情查看博客地址: https://www.cnblogs.com/xiaonq/p/10053234.html1.1 什么是RESTfulREST与技术无关,代表的是一种软件架构风格(REST是Representational StateTransfer的简称,中文翻译为“表征状态转移”) REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资

2020-10-06 11:43:33 143

原创 python中的三种路径

1.1 操作系统文件绝对路径django 静态文件查找, 模板查找(第一种)去配置好的 文件夹 中查找指定的文件 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_URL = '/static/' # /teach/shiyanlou_project/syl/apps/user/ # linux # E:\_000\XSX1.2 django 导包路径(第二种)#导包之前, 包的上级路径,

2020-10-06 11:43:25 360

原创 浏览器常见的请求

HTTP协议 (Hyper Text Transfer Protocol)HTTP是一个基于TCP/IP通信协议来传递数据,包括html文件、图像、结果等,即是一个客户端和服务器端请求和应答的标准。HTTP协议特点1.http无连接:限制每次连接只处理一个请求,服务端完成客户端的请求后,即断开连接。(传输速度快,减少不必要的连接,但也意味着每一次访问都要建立一次连接,效率降低)2.http无状态:对于事务处理没有记忆能力。每一次请求都是独立的,不记录客户端任何行为。(优点解放服务器,但可能每次请求会

2020-10-06 11:43:17 303

原创 Cookies和Session的机制

Cookie和Session​ Cookie及Session一直以来都是Web开发中非常关键的一环,因为HTTP协议本身为无状态,每一次请求之间没有任何状态信息保持,往往我们的Web服务无法在客户端访问过程中得知用户的一些状态信息,比如是否登录等等;那么这里通过引入Cookie或者Seesion来解决这个问题。​ 当客户端访问时,服务端会为客户端生成一个Cookie键值对数据,通过Response响应给到客户端。当下一次客户端继续访问相同的服务端时,浏览器客户端就会将这个Cookie值连带发送到服务

2020-10-06 11:43:09 281

原创 Python-PEP8编码规范

1、代码编排缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。类和top-level(顶级窗口)函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。2、文档编排模块内容的顺序:模块说明和docstring—import—globals&constants—其他定义。其中import部分,又按标准、三方和自己编写顺序

2020-10-06 11:42:57 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除