Django
文章平均质量分 67
光明小学王小雨
出来挨打
展开
-
十一、Django REST framework自定义使用RBAC权限
参考,主要参考第一个链接的,然后根据自己的场景做了些改动drf_admin(权限RBAC)后台管理系统(RBAC权限篇)Django实战【六】—权限管理系统rbac组件实现 CRM【第一篇】: 权限组件之权限控制 一、流程根据需求,创建不同角色,例如:admin、visitor依据角色,给不同的角色分配不同的权限根据用户的岗位及职责分配角色,使不同用户具有不同的权限用户请求后端接口时,验证用户权限,通过则放行,否则返回403操作数据库二、数据库表设计Users用户表Roles原创 2022-01-04 14:43:40 · 2617 阅读 · 2 评论 -
pycharm创建新django app
Tools -> Run manage.py task -> startapp appName(你的App名称)或者 optin + R -> startapp appName(你的App名称)原创 2021-12-03 17:35:04 · 1140 阅读 · 0 评论 -
django 使用inspectdb 反向生成model实体类(可以指定表名转换)
https://www.cnblogs.com/feili/p/11132732.html原创 2021-12-03 17:33:00 · 1945 阅读 · 0 评论 -
DJANGO 使用多个数据库或使用指定的数据库来执行操作
https://www.cnblogs.com/wumingxiaoyao/p/8610791.html原创 2021-12-03 17:32:12 · 2091 阅读 · 0 评论 -
django项目如何通过指定配置文件来区分正式/测试环境
参考python 项目如何通过指定配置文件来区分正式/测试环境工程目录结构:一、django方式启动 区分正式测试环境启动项目的命令是 python manage.py runserver 0.0.0.0:8000,可以看出,是通过启动manage.py来启动整个项目的,而这里运行配置文件是通过获取系统环境变量 DJANGO_SETTINGS_MODULE 的值来指定的,所以只需要在环境变量中配一下或者在这里写死就可以轻松指定运行哪个配置文件,部署到linux上的时候也可以通过配置环境变量/et原创 2021-12-02 20:25:26 · 1020 阅读 · 0 评论 -
Django项目中的session存储
参考Django项目中的session存储一、启用SessionDjango项目默认启用Session。可以在settings.py文件中查看,如图所示如需禁用session,将上图中的session中间件注释掉即可。二、 存储方式在settings.py文件中,可以设置session数据的存储方式,可以保存在数据库、本地缓存等。1、存在在默认数据库中默认存储在数据库中,如下设置可以写,也可以不写,这是默认存储方式。SESSION_ENGINE='django.contrib.sessi原创 2021-10-22 18:54:23 · 2254 阅读 · 1 评论 -
django将所有app放到一个apps文件夹中
1、项目根目录下新建一个文件夹:apps2、将所有的app拖到apps中,不要勾选Search for references3、(重要)选中apps文件夹,右键选择Make Directory As --> Sources Root最后在setting.py 中添加以下代码import sys# sys.path是python的搜索模块的路径集sys.path.insert(0, os.path.join(BASE_DIR,”apps”))...原创 2021-10-19 15:29:09 · 567 阅读 · 0 评论 -
python和django操作redis
参考python操作redis(单机、集群、哨兵)一、安装1、单机和哨兵,使用的是redis模块,所以下载redis即可,使用pip或者pip3命令来安装。pip3 install redis2、集群需要用到rediscluster模块,采用以下命令安装redis-py-cluster即可,最好指定版本pip3 install redis-py-cluster=1.3.6二、连接和使用1、redis单机连接import redisconn = redis.StrictRedis(c原创 2021-03-23 11:27:38 · 730 阅读 · 0 评论 -
Django之生成requirements.txt文件
生成requirements.txt;生成的requirements文件和manage.py要同级;pip3 freeze > requirements.txt;执行requirements文件:pip3 install -r requirements.txt原创 2021-03-23 11:17:54 · 975 阅读 · 0 评论 -
Django Vue 跨域问题
一、Django中设置使用pip安装pip install django-cors-headerssetting.py中设置INSTALLED_APPS = [ ... 'corsheaders']MIDDLEWARE = ['corsheader.middleware.CorsMiddleware', # 尽量放在csrf前面...]添加中间件,需要注意放的位置,在SessionMiddleware后面以及CommonMiddleware前面添加配置参数#原创 2021-02-12 13:44:32 · 1167 阅读 · 0 评论 -
DRF官方文档之Request
RequestsREST framework的request继承了标准的HttpRequest,并在其基础上增加了对REST framework灵活的请求解析和认证的支持。Request parsing 请求的解析转换REST framework的Request对象为你提供了非常灵活的解析方式,因此,你可以像通常处理表单数据一样去处理request里的JSON数据和其他媒体类型数据。以下是具体属性说明.data:request.data返回的是request body里的内容经过解析后的结果。它翻译 2021-02-03 14:19:15 · 498 阅读 · 0 评论 -
十、Django REST framework 使用JWT认证方式
参考 Django REST framework JWT认证方式和BasicAuthentication认证方式一、基本使用1、JWT的流程2、安装jwtpip install djangorestframework-jwt3、在setting.py中设置三种认证方式,权限管理为仅通过认证的用户REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authenticat原创 2021-01-29 20:32:59 · 1950 阅读 · 4 评论 -
九、Django REST framework 认证、权限、限流
一、认证Authentication可以在配置文件中配置全局默认的认证方案,只有继承APIView或者它的子类的视图,才会走这里配置的认证。REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', # 基本认证 'rest_framework.authentication.SessionAuthentic原创 2021-01-21 11:36:33 · 265 阅读 · 0 评论 -
八、Django REST framework 自动生成接口文档
自动生成接口文档REST framework可以自动帮助我们生成接口文档。接口文档以网页的方式呈现。自动接口文档能生成的是继承自APIView及其子类的视图。1、安装依赖REST framewrok生成接口文档需要coreapi库的支持。pip install coreapi2、设置接口文档访问路径在总路由中添加接口文档路径。文档路由对应的视图配置为rest_framework.documentation.include_docs_urls,参数title为接口文档网站的标题。fro原创 2021-01-17 16:09:04 · 572 阅读 · 0 评论 -
七、Django rest framework 过滤排序分页
一、过滤Filtering对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。pip install django-filter在配置文件中增加过滤后端的设置:INSTALLED_APPS = [ ... 'django_filters', # 需要注册应用,]REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.Djan原创 2021-01-17 15:55:32 · 410 阅读 · 0 评论 -
六、Django rest framework自定义返回数据格式
参考 Django rest framework自定义返回数据格式一、简介drf 默认返回的异常格式是这样的{ "username": [ "该字段是必填项。" ], "password": [ "该字段是必填项。" ]}但是在实际工作中、这样的数据不利于前端的渲染,一般是这样的格式返回(有错误的时候){ "msg": "username该字段是必填项。", "code": 0, "data": ""}原创 2021-01-15 16:55:28 · 4223 阅读 · 3 评论 -
五、Django REST framwork 的视图
Django REST framwork 提供的视图的主要作用:控制序列化器的执行(检验、保存、转换数据)控制数据库查询的执行一、视图说明1、两个基类1)APIViewrest_framework.views.APIViewAPIView是REST framework提供的所有视图的基类,继承自Django的View父类。APIView与View的不同之处在于:传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象;视原创 2021-01-05 18:04:05 · 357 阅读 · 1 评论 -
四、模型类序列化器ModelSerializer
如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类。ModelSerializer与常规的Serializer相同,但提供了:基于模型类自动生成一系列字段包含默认的create()和update()的实现1、 定义比如我们创建一个BookInfoSerializerclass BookInfoSerializer(serializers.ModelSerializer): "原创 2021-01-05 16:44:50 · 334 阅读 · 0 评论 -
三、基础的Serializer序列化器
一、定义Serializer序列化器1、定义方法Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializer。例如,我们已有了一个数据库模型类BookInfoclass BookInfo(models.Model): btitle = models.CharField(max_length=20, verbose_name='名称') bpub_date = models.DateF原创 2021-01-05 16:05:18 · 932 阅读 · 0 评论 -
二、rest_framework 简介和简单示例
一、安装DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)1、安装pip install djangorestframework2、添加rest_framework应用在settings.py的INSTALLED_APPS中添加’rest_framework’。INSTALLED_APPS = [ ... 'rest_framework',]接下来就可以使用DRF原创 2021-01-05 10:58:32 · 5163 阅读 · 0 评论 -
一、直接使用Django开发REST 接口
1、新建一个django项目名称为restframeworkdemo,app名称为booktest2、创建数据库,并在setting.py中设置DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #连接数据库的类型 'NAME': 'restframeworkdemo', #数据库名 'HOST':'127.0.0.1'原创 2021-01-04 19:01:07 · 1367 阅读 · 2 评论 -
django orm app的model中新创建表提示之前的表已存在
先删除migrations下文件,和django_migrations表中的app相关记录,将要新建的表先注释,然后执行下面命令重新生成initial.py文件,–fake忽略已经存在的表python manage.py makemigrations appnamepython manage.py migrate appname --fake将要新建的表注释取消,然后再执行下面命令python manage.py makemigrations appnamepython manage.py mi原创 2020-11-05 19:16:11 · 490 阅读 · 0 评论 -
mysql 允许其他机器连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;原创 2020-09-23 16:07:46 · 496 阅读 · 0 评论 -
django使用中间件来验证用户是否登录
如果不使用中间件的话,对于需要登陆才能访问请求,需要在每个要登陆才能访问的视图函数前面加上@login_required(login_url='/login/')装饰器,这样很不方便。用法可以看前面的博客Django 使用login函数登陆和注销下面介绍一下使用中间件的方法1、新建一个python文件,定义中间件,具体的解释见注释from django.shortcuts import redirect,renderfrom django.utils.deprecation import Middl原创 2020-09-23 15:57:09 · 1569 阅读 · 0 评论 -
Django 中自己写个用户管理页面,设置分页页码,只显示当前页以及左右两页
参考Django 中设置分页页码,只显示当前页以及左右两页1、样式如下2、Django 给我们提供了分页的功能:Paginator和Page类都是用来做分页的。# Paginator常用属性和方法1. `count`: 总共有多少条数据。2. `num_pages`: 总共有多少页。3. `page_range`:页面的区间。比如有三页,那么就是`range(1,4)`。 # Page常用属性和方法:1. `has_next`: 是否还有下一页。2. `has_previous`:原创 2020-09-23 15:46:24 · 743 阅读 · 0 评论 -
Django 使用logging生成日志
如果对logging模块不了解可以先看下上一篇博客一、示例代码一个示例,有些配置可能用不到,但为了介绍全面一些就多写了,需要根据自己项目进行实际的设置settings文件中配置:#进行日志logging的配置#设置日志文件路径uqa_logpath = os.path.join(BASE_DIR,"logs/uqa/uqa.log").replace('\\', '/')echarts_logpath = os.path.join(BASE_DIR,"logs/echarts/echart原创 2020-07-17 14:59:24 · 515 阅读 · 1 评论 -
python logging模块
参考:python中logging模块上篇Python Logging 模块完全解读django日志logging的配置以及处理一、简介1、简介Python 中的 logging 模块可以让你跟踪代码运行时的事件,当程序崩溃时可以查看日志并且发现是什么引发了错误。Log 信息有内置的层级——调试(debugging)、信息(informational)、警告(warnings)、错误(error)和严重错误(critical)。你也可以在 logging 中包含 traceback 信息。不管是原创 2020-07-12 20:02:26 · 450 阅读 · 0 评论 -
python给定起始和结束日期,得到中间的日期,以保证echarts图表中日期每天都有值
一、示例import datetime#时间从2020年3月1日开始start = '2020-03-01'datestart = datetime.datetime.strptime(start, '%Y-%m-%d')#结束时间到当天dateend = datetime.datetime.now()#遍历从起始时间到当前时间的日期while datestart <= dateend: print(datestart) datestart += datetime.原创 2020-07-12 17:33:27 · 977 阅读 · 0 评论 -
Django在命令行下执行的脚本使用ORM
如果你想通过自己创建的python文件在django项目中使用django的models,那么就需要在脚本开头添加一些设置,如下:import os,django,sys#对于模块和自己写的脚本不在同一个目录下,在脚本开头加sys.path.append('引用模块的地址')#这里如果你的脚本已经在根目录下的话则不用设置,否则需要使用sys.path.append()从脚本位置定位到项目根目录下,或者直接使用绝对路径。#不然会在Linux下执行脚本会报ModuleNotFoundError: No原创 2020-07-07 23:19:45 · 552 阅读 · 0 评论 -
Django ORM基础
参考Django学习笔记4——Django ORM系统刘江的博客教程一、ORM介绍1、ORM概念对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。2、ORM由来字母O起源于”对象”(Object),而R则来自于”关系”(Relati原创 2020-07-06 17:41:30 · 494 阅读 · 0 评论 -
Django中DEBUG模式及static静态文件
一、DEBUG介绍在settings.py中,默认值是DEBUG = True1、当DEBUG = True时如果开启了DEBUG模式,那么以后我们修改了Django项目的代码,然后按下ctrl+s,那么Django就会自动的给我们重启项目,不需要手动重启。如果开启了DEBUG模式,那么以后Django项目中的代码出现bug了,那么在浏览器中和控制台会打印出错信息。否则的我们很难寻找到b...原创 2020-04-30 15:58:07 · 2302 阅读 · 1 评论 -
Django 配置404和500页面
方法一、直接templates目录创建特定命名的模板文件主配置文件settings.py中添加模板路径,关闭调试模式 DEBUG = False ,因为调试模式的错误页面是开发下会显示错误信息的,同时设置ALLOW_HOSTDEBUG = FalseALLOWED_HOSTS = [*]TEMPLATES = [ { ... 'DIRS': [os...原创 2020-04-27 14:57:45 · 1447 阅读 · 1 评论 -
Django生成excel表格并下载,以及JS下载多个文件的问题
一、python生成excel文件这里使用xlwt这个模块来生成excel文件import xlwtworkbook= xlwt.Workbook() #创建workbook对象、(其实就是excel,后来保存一下就行)sheet1=workbook.add_sheet('sheettest1',cell_overwrite_ok=True) #创建表,一个exc...原创 2020-04-09 15:36:54 · 1020 阅读 · 0 评论 -
Django 权限
一、权限简介Django中内置了权限的功能。他的权限都是针对表或者说是模型级别的。比如对某个模型上的数据是否可以进行增删改查操作。他不能针对数据级别的,比如对某个表中的某条数据能否进行增删改查操作(如果要实现数据级别的,考虑使用django-guardian)。创建完一个模型后,针对这个模型默认就有三种权限,分别是增/删/改/。可以在执行完migrate命令后,查看数据库中的auth_permi...原创 2020-02-28 17:32:32 · 1051 阅读 · 0 评论 -
Django 使用login函数登陆和注销
一、登陆1、写一个简单的登陆页面,如下<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>登录</title></head><body><form action="" method="...原创 2020-02-27 17:26:47 · 4345 阅读 · 1 评论 -
Django User用户模型
一、验证和授权概述Django有一个内置的授权系统。他用来处理用户、分组、权限以及基于cookie的会话系统。Django的授权系统包括验证和授权两个部分。验证是验证这个用户是否是他声称的人(比如用户名和密码验证,角色验证),授权是给与他相应的权限。Django内置的权限系统包括以下方面:用户。权限。分组。一个可以配置的密码哈希系统一个可插拔的后台管理系统二、使用授权系统:默认...原创 2020-02-24 18:59:37 · 940 阅读 · 0 评论 -
Django form表单基础
不用form类:则直接将数据传给模板,然后渲染出html页面,需要写html页面的前端代码使用form类:将form类传给模板,可以通过form类直接渲染出html页面我感觉form类不是很好使,虽然可以直接通过这个类生成表单,但是不好看,如果要使用css js之类的又挺麻烦的,限制和规则挺多的,还不如直接写html。一、例子一这里以一个做一个留言板为例。1、首先我们在后台服务器定义一个...原创 2020-02-24 16:56:08 · 172 阅读 · 0 评论 -
Django auth模块
确认setting有auth模块的配置执行python manage.py migrate生成表user表的属性可以使用python manage.py createsuperuser创建一个超级用户再看表里已经有刚才创建的用户了...原创 2020-01-17 09:38:40 · 106 阅读 · 0 评论 -
Django笔记一
一、安装1、 安装pip install Django==1.11.11(卸载django:pip uninstall django)或者在pycharm里安装2、 创建第一个Django项目命令行创建django-admin startproject 项目名PyCharmFile -> new Project -> 左侧选第二项,右侧第一项是路径,第二项是选pytho...原创 2019-08-22 13:55:33 · 111 阅读 · 0 评论 -
Django 中间件
一、什么是中间件官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,...原创 2020-01-15 18:14:52 · 115 阅读 · 0 评论