Django
小火skr车
思考后再编程,不要在疲倦时编程
展开
-
Django学习笔记(五十二):django服务器部署uwsgi
项目部署9.1 uwsgi遵循wsgi协议的web服务器。9.1.1 uwsgi的安装 pip install uwsgi9.1.2 uwsgi的配置项目部署时,需要把settings.py文件夹下的:DEBUG=FALSEALLOWED_HOSTS=[‘*’] [uwsgi]#使用nginx连接时使用#socket=127.0.0.1:...原创 2019-04-18 17:14:56 · 294 阅读 · 2 评论 -
Django学习笔记(三十八):后台玩家禁言及达到禁言时间自动解禁
1、优化功能内的禁言和封号操作,将禁言、封号、踢下线功能做成按钮放在每一条聊天记录里,操作方式与角色管理里的对应功能一样2、增加永久静默和永久禁言,点击后弹出是否确认操作的确认框,点确认继续,点取消返回。效果是静默禁言/普通禁言63072000秒(2年),备注是聊天监控永久静默禁言/聊天监控永久普通禁言@Route()def player_shutup(request, player_...原创 2019-03-19 11:55:05 · 653 阅读 · 0 评论 -
Django学习笔记(三十七):后台新服推荐标识和状态的自动切换
1.后台的新服开服当天,服务器状态默认为爆满,有 推荐 标识,到第二天状态依然为爆满和推荐。2.修改为新服开服当天,服务器状态默认为爆满,有 推荐 标识,到第二天以后如果没有新服务器开服,服务器状态依然默认为爆满,有 推荐 标识,如果有新服务器开服,则这个旧服务器状态自动切换为顺畅和新服标识。3.即为最新开的服务器状态是爆满,有 推荐 标识。不是最新的服务器只要过了开服当天就自动切换为顺畅...原创 2019-03-19 11:53:53 · 238 阅读 · 0 评论 -
Django学习笔记(三十六):Django读取文件内容,并进行操作后,再写入文本
#先将所需操作的文件放置再static目录下的一个子目录下_change_status_root = os.path.join(STATIC_ROOT,'player_status')#mkdirs()是创建多级目录mkdirs(_change_status_root)#用于写入错误信息的error.txterror_file_path = os.path.join(_change_s...原创 2019-03-11 15:37:08 · 9541 阅读 · 1 评论 -
Django学习笔记(三十五):接入玩家信息发送接口
接入玩家信息发送接口,渠道方通过访问我们提供的接口,将玩家部分数据传递给我们,我们通过get方式将参数进行获取,再将获取的参数通过服务器的数据库进行查询然后返回给渠道方。@Route(r'^log/serverlist$')@notauthdef query_server(request): ''' 查询服务器列表 ''' try: ...原创 2019-03-11 15:28:28 · 263 阅读 · 1 评论 -
Django学习笔记(三十四):django实现游戏的服务器注册状态开关
需求如下:1、后台①后台新增一个页面,布局参考跨服战管理页面,包含的数据有:服id,服务器名,入口状态,推荐状态,开服时间,当前账号数,注册开关-时间,注册开关-账号数,注册开关状态②入口状态为游戏服管理中的状态。注册开关状态包含四种:功能未开,运行中,注册已关,状态异常。当未配任何值时显示为功能未开;当配了值但是未达到条件前,显示运行中;当达到条件已经通知服务端关闭注册后,显示...原创 2019-02-28 14:38:14 · 777 阅读 · 0 评论 -
Django学习笔记(三十三):Python enumerate() 函数
Python enumerate() 函数 Python 内置函数描述enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。语法以下是 enumerate() 方法的语法:enumerate(sequen...原创 2018-10-28 15:43:21 · 646 阅读 · 0 评论 -
Django学习笔记(三十二):datetime.timedelta类介绍
datetime.timedelta对象代表两个时间之间的时间差,两个date或datetime对象相减就可以返回一个timedelta对象。 如果有人问你昨天是几号,这个很容易就回答出来了。但是如果问你200天前是几号,就不是那么容易答出来。而在Python中datetime模块中的timedelta就可以很轻松给出答案。 函数原型: class datetime.timedelta([d...原创 2018-10-28 14:10:29 · 3632 阅读 · 0 评论 -
Django学习笔记(三十一):django orm extra
extra 在django orm中使用复杂的sql语句extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None)有些情况下,Django 的查询语法难以简练地表达复杂的 WHERE 子句。对于这种情况,Django 提供了 extra() QuerySet 修改机制...原创 2018-10-28 14:09:12 · 7331 阅读 · 0 评论 -
Django学习笔记(三十):短息验证接口
这里提供一个互亿无线的短信验证码发送接口注册有免费试用机会,可供大家学习使用短信验证码的使用# 接口类型:互亿无线触发短信接口,支持发送验证码短信、订单通知短信等。# 账户注册:请通过该地址开通账户http://sms.ihuyi.com/register.html# 注意事项:# (1)调试期间,请用默认的模板进行测试,默认模板详见接口文档;# (2)请使用APIID(查看A...原创 2018-09-28 11:00:48 · 339 阅读 · 0 评论 -
Django学习笔记(二十九):Cookie与Session的区别
Cookie数据存放在浏览器端,Session数据存放在服务器端 Cookie存在不安全性,别人可以分享存放在本地的Cookie进行Cookie欺骗 Session会在一定时间内保存在服务器上,当访问增多时,会占用服务器性能 服务器端的Session的实现对客户端的Cookie有依赖关系 服务器执行Session机制时会生成Session的id值,这个id值发送给客...原创 2018-09-27 14:31:12 · 188 阅读 · 0 评论 -
Django学习笔记(十):关于中间件的介绍
中间件在Django处理的请求的各个处理阶段,可以插入自己的逻辑介于request与response处理之间的一道处理过程、轻量级在全局上改变django的输入、输出从浏览器发出一个请求requset,得到一个响应后的内容HttpResponse每一个请求都是先通过中间件中的process_requset函数如果proocess_request函数返回None,继续处理其他...原创 2018-07-30 11:14:54 · 206 阅读 · 0 评论 -
Django学习笔记(三十九):(BUG)ModuleNotFoundError: No module named 'django'
当执行python manage.py runerver报错如下,说没有找到module named ‘django’Error Reproduce:mamerunminmatoMacBook-Pro:learning_log RunMin$ source ll_env/bin/activate(ll_env) mamerunminmatoMacBook-Pro:learning_log ...原创 2019-04-11 17:53:50 · 9177 阅读 · 0 评论 -
Django学习笔记(四十四):使用Paginator分页器进行分页
使用Paginator分页器进行分页用实例进行分析views.py部分# 种类id 页面 排序方式# restful api -> 请求一种资源# /list?type_id=种类id&page=页码%sort=排序方式# list/种类id/页码?/sort=排序方式class ListView(View): '''列表页''' def get...原创 2019-04-15 16:31:50 · 1369 阅读 · 0 评论 -
Django学习笔记(四十):ORM object relational mapping,对象关系映射
ORM:object relational mapping,对象关系映射django中使用原生sql的弊端: 1、SQL语句重复率很高,利用率不高 2、如果业务逻辑生变,原生SQL更改起来比较多 3、容易忽略一些web安全问题,如SQL注入ORM的优点: 易用性:使用ORM做数据库的开发可以有效的减少重复SQL语句的概率,写出来的模型也更加直观、清晰。 性能损耗小:OR...原创 2019-04-12 13:20:11 · 338 阅读 · 0 评论 -
Django学习笔记(五十一):django实现支付宝支付功能
首先介绍一下支付的访问流程,用户在网页提交订单,发出请求给django服务器,django服务器获取请求,校验参数,将支付包需要的参数进行私钥加密传递,支付宝获取参数后通过在支付宝开发平台添加的对应应用的公钥对参数进行解密,再将参数通过支付宝私钥进行加密传递会django服务器,django服务器再通过支付宝提供的公钥对传递的参数进行解密,然后将用户浏览的页面重定向到支付宝的支付页面,完成支付后再...原创 2019-04-18 11:12:40 · 710 阅读 · 0 评论 -
Django学习笔记(四十三):使用redis进行页面数据缓存和更新缓存数据
在开发过程中会遇到一些页面的数据是很长时间才进行更新的,不使用缓存的情况下,用户每次访问这些都需要先去数据库中获取这些数据,当访问量较大时,这样获取数据的方式就会降低页面的访问速度,影响效率,这时就可以使用redis将这些数据保存起来,通过判断是否生成过获取以及是否更新过数据来生成新的缓存数据具体操作如下:在settings.py里添加缓存设置# Django的缓存配置CACHES...原创 2019-04-15 00:20:31 · 1527 阅读 · 0 评论 -
Django学习笔记(五十):处理并发问题,悲观锁,乐观锁
处理并发问题时,常见的方式就是悲观锁和乐观锁悲观锁的处理方法可以理解为在一个进程中执行数据操作的时候进行加锁操作,并只有事务结束时,锁才能释放,另一个进程才能执行才能执行这个相同的数据操作。django中使用orm实现悲观锁的添加通过select_for_update()方法# select * from df_goods_sku where id=sku_id for upd...原创 2019-04-17 10:38:04 · 1062 阅读 · 0 评论 -
Django学习笔记(四十六):js,jq实现前端数据动态显示
<div class="prize_bar"> <span class="show_pirze">¥<em>{{ sku.price }}</em></span> <span class="show_unit">单 位:{{ sku.unite }}</span> </div&...原创 2019-04-16 10:56:29 · 408 阅读 · 0 评论 -
Django学习笔记(四十九):mysql事务使用以及在django中使用事物
事务概念一组mysql语句,要么执行,要么全不不执行。事务的特点1、原子性:一组事务,要么成功;要么撤回。2、稳定性 :有非法数据(外键约束之类),事务撤回。3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, ...原创 2019-04-16 23:37:39 · 607 阅读 · 0 评论 -
Django学习笔记(四十八):购物车模块全选反选、添加减少、删除时数量金额及页面的相应显示配合redis实现更新前后端的实现
{% extends 'base_no_cart.html' %}{% load staticfiles %}{% block title %}天天生鲜-购物车{% endblock title %}{% block page_title %}购物车{% endblock page_title %}{% block body %} <div class="total_count"...原创 2019-04-16 18:14:54 · 1024 阅读 · 0 评论 -
Django学习笔记(五十三):django-redis使用总结(作用介绍,操作介绍,使用场景介绍)
Redis 简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存...原创 2019-04-22 18:00:23 · 6767 阅读 · 0 评论 -
Django学习笔记(四十七):django中使用redis添加购物车前后端逻辑
from django.shortcuts import renderfrom django.views.generic import Viewfrom django.http import JsonResponsefrom django_redis import get_redis_connectionfrom goods.models import GoodsSKUfrom ut...原创 2019-04-16 12:37:56 · 502 阅读 · 0 评论 -
Django学习笔记(四十二):authenticate django自带用户认证函数返回值None问题解决
user = User.objects.create_user(username, email, password)user = authenticate(username=username, password=password)正常情况下通过django自带的用户创建函数create_user进行用户创建,可将用户密码进行加密,再用authenticate函数就可以对用户名和密码进行校验...原创 2019-04-13 01:22:27 · 1584 阅读 · 0 评论 -
Django学习笔记(四十一): itsdangerous 加密解密的使用
在开发过程中会遇到一些需要用户激活使用的链接,这些需要带有用户的相关信息,又不希望这些信息以明文的方式展现给用户,防止不放分子从中作恶,这时就可以使用itsdangerous来对数据进行加密,之后再对加密的数据进行解密得到用户信息,从而对该用户进行激活认证具体在开发过程中的使用:加密时from itsdangerous import TimedJSONWebSignatureSeri...原创 2019-04-12 16:22:00 · 311 阅读 · 0 评论 -
Django学习笔记(四十五):haystack全文检索框架+whoosh搜索引擎+jieba分词实现全文检索功能
全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理。haystack:全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎,点击查看官方网站。 whoosh:纯Python编写的全文搜索引擎,虽然性能比不上sphinx、xapian、Elasticsearc等,但是无二进制包,程序不会莫名其妙的崩溃,对于小型的...原创 2019-04-15 19:39:45 · 1032 阅读 · 0 评论 -
Django学习笔记(二十八):服务器的试用和Nginx部署
因为博主穴力,所以一开始的学习都是在虚拟机上进行的,项目学习的差不多了,是时候学习一下部署了特意在某云上买了个服务器,试试水,看看能不能再15天试用期完成部署的全部操作练习 先在云主机上设置账密,这样方便在xshell上使用在xshell中新建连接,输入主机ip,再输入用户名和密码就能完成连接连接成功开始一个django项目之前,我们需要搭建一个虚拟环境和确认pyt...原创 2018-09-13 10:41:44 · 227 阅读 · 0 评论 -
Django学习笔记(二十七):xadmin使用初体验
在网上看到很多xadmin的安装使用教程,很多都比较笼统,可能是对于大牛来说这个太简单了,最后看到一个比较详细的版本,然后跟着敲终于成功了,这里分享给大家1,安装xadminpip install xadmin2,在settings.py文件中的INSTALLED_APPS添加配置INSTALLED_APPS = [ 'django.contrib.admin',...原创 2018-09-12 15:04:18 · 369 阅读 · 0 评论 -
Django学习笔记(二十六):阅读计数和优化计数(防刷新)
阅读计数主要就是记录网页被浏览的次数,防刷的方法就是记录浏览的cookie,使每个cookie只能增加一次阅读数,当然,删除cookie和关闭浏览器就可以重新增加阅读数,更加优化的方法还在学习中,先分享这个我会的models.py的代码class Books(models.Model): #创建书名和阅读数属性 bname = models.CharField(max...原创 2018-09-12 11:46:20 · 368 阅读 · 0 评论 -
Django学习笔记(五):model继承和模板语法基础
model继承使用场景:当不同model出现很多重复的字段时,我们可以考虑给他们写一个合理的抽象类使用方法:class Humen(models.Model): name = moedls.charField( max_length=20, verbose_name='人名' ) age = models.IntergeFiel...原创 2018-07-28 19:18:08 · 405 阅读 · 0 评论 -
Django学习笔记(四):django常用查询函数
聚合函数使用aggregate()函数返回聚合函数的值Avg:平均值Count:数量Max:最大值Min:最小值Sum:求和使用案例from django.db.models import Sumfrom django.http import HttpResponsefrom django.shortcuts import renderfrom .mo...原创 2018-07-28 18:39:36 · 748 阅读 · 0 评论 -
Django学习笔记(三):三种关系模型的实例
一对一:通过外键+unique唯一约束实现#一对一def get_bankcard(request): bankcard = BankCard.objects.all() return render(request,'get_bankcard.html',locals())def get_person(request,pid): #person = Person....原创 2018-07-28 16:44:43 · 2249 阅读 · 0 评论 -
Django学习笔记(十九):测试文件(text.py)
测试的作用就不多说了,因为我也不知道,哈哈哈哈或或上代码,看效果忘了说一个重要的事情就是,这里的测试数据在一个临时的数据表中存储,不会在数据表中生成from django.test import TestCasefrom .models import Categoryclass CategoryMethodTests(TestCase): def test_ensure...原创 2018-08-30 19:23:49 · 976 阅读 · 0 评论 -
Django学习笔记(十一):上传图片
实现图片上传的方法1,在models.py中新建模型中添加icon属性字段,使用models.imageField2,前端相应操作from表单上传文件需要添加enctype='multipart/form-data'文件上传必须使用POST请求方式至少要包含一个类型是file的input标签3,后端相应操作在static文件夹下创建uploads用与存储接收上传的文...原创 2018-07-30 16:42:38 · 236 阅读 · 0 评论 -
Django学习笔记(九):自定义用户和基本使用操作
自定义用户模型1,在models.py文件下新建一个继承自AbstractUser的用户模型类2,,在settings文件中添加#在新建项目homework01下自定义的MyUserAUTH_USER_MODEL = "homework01.MyUser"3,拓展自己需要的字段4,生成迁移文件,进行迁移备注:如果迁移失败,需要先将数据库中的用户表已经与用户相关联的表进行...原创 2018-07-29 23:53:20 · 295 阅读 · 0 评论 -
Django学习笔记(八):Django实现简单注册登录操作
用户注册逻辑思路:1,先拿参数2,校验参数格式和对应的用户名字要求3,校验该用户是不是被注册过4,果然没被注册就创建一条用户数据5,使用重定向将用户引导至登录页面进行登录代码实现注意:create_user用来创建用户#导入系统自带的用户模型form django.contrib.auth.models import User#获取前端输入数据para...原创 2018-07-29 23:02:04 · 701 阅读 · 0 评论 -
Django学习笔记(七):前端页面知识点
页面继承 1, 在基础页面 确定占位 占了位置(挖了哪些坑) 1 js引用 2 CSS 引用 3 网页结构 4 额外的js css页面内代码 2 ,语法 {%block 名字%} {%endblock%} 3,继承{%extends '文件名字'%}{%load static%}接下...原创 2018-07-28 20:42:43 · 571 阅读 · 0 评论 -
Django学习笔记(二十三):Celery异步操作发送邮件
异步操作发送邮件在settings.py里添加邮箱配置from os import environ# 邮件配置EMAIL_USE_SSL = TrueEMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.comEMAIL_PORT = 465EMAIL_HOST_USER = environ.get("EMAIL_SENDER...原创 2018-08-07 14:35:15 · 1599 阅读 · 0 评论 -
Django学习笔记(六):反向解析
反向解析根据命名空间和url名字找到对应的处理逻辑使用方法1,在工程的urls.py导入include方法 加入namespce来定义你的命名空间url(r'^study05/',include("study05.url",namespace="study05"))(第一个"study05"用于路径使用,例如:localhost:12345/study/lolstu第二...原创 2018-07-28 19:45:56 · 302 阅读 · 0 评论 -
Django学习笔记(二十四):Celery里的定时任务
定时任务在settings.py中添加定时任务配置CELERYBEAT_SCHEDULE = { #任务名称,长度不限,尽量详细说明 'every-10-seconds-run-first_task':{ #第一个参数(homework)指app名, #第三个参数(first_task)指调用tasks.py下的哪一个方法 ...原创 2018-08-07 16:22:26 · 1271 阅读 · 0 评论