Django 2.x 常用命令
版本: Django2.x
记一下平时写项目过程中遇到的点
创建 Django 项目
先进入到你想要创建 project 目录下,执行命令
django-admin startproject projectname
不报错即可,创建的文件结构为

创建apps
在project目录中执行
django-admin startapp appname
ORM对某个字段模糊搜索
写 filter 的时候字段名后面加上 __icontains 代表模糊搜索且不区分大小写
__contains 代表区分大小写的模糊搜索
例如
# 对name字段进行不区分大小写模糊搜索
xx.filter(name__icontains=value).xx
# 对name字段进行区分大小写的模糊搜索
xx.filter(name__contains=value).xx
ORM查询中的动态字段
如有这样的需求,某个查询是有多个参数,而参数可以有多个值也可以没有值.后端该怎么解决呢?
看有人套 if else 来判断出所有不停的情况,如果一两个可变字段还好,有多个的话代码该有多少
我们可以利用 ORM 的filter参数可传 **kwargs 的特征来写出既满足需求又可维护可扩展的代码,例如:
def search(**kwargs):
'''
查询组件
: param **kwargs:
: return querysite:
''' # 本次ORM查询
filter_kwargs = dict() # 因时间区间判断ORM需要指定不同的key所以分别判断
# 指定开始/结束时间
if (kwargs["start_time"] and kwargs["end_time"]):
filter_kwargs["online_time__range"] = (kwargs["start_time"], kwargs["end_time"])
# 指定开始时间
elif kwargs["start_time"]:
filter_kwargs["online_time__gt"] = kwargs["start_time"]
# 指定结束时间
elif kwargs["end_time"]:
filter_kwargs["online_time__lte"] = kwargs["end_time"] # 普通字段
# 有上/下线状态
if kwargs["status"]:
filter_kwargs["status"] = kwargs["status"] # 有IP,模糊匹配,不区分大小写
if kwargs["ip"]:
filter_kwargs["ip__icontains"] = kwargs["ip"] # 按online_time排序
querysite = log.objects.filter(**filter_kwargs).order_by('-online_time')
return querysite
利用filter的特征,我们没必要将其所有搭配情况写全,而是只对某个单一字段进行分别区分,打个比方,如果你传了ip字段,那么我就在filter中加上ip字段.
然后将这个集合了当前查询的匹配字典,传入**kwargs会将字典打成 k=v 的形式传入, 达到同样的效果.
如果字段要增加/删除/修改 则只需要修改该字段的判断即可
Django 2.x 常用命令的更多相关文章
- django forms的常用命令及方法(二)
根据别人网上发布,个人爱好收集 1.创建Form类 from django.forms import Form from django.forms import widgets from django ...
- django forms的常用命令及方法(一)
根据别人网上发布,个人爱好收集 Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型 ...
- Django常用命令及参数配置(Django 1.8.6)
常用命令 #新建Django项目 django-admin startproject mysite(项目名) #新建一个APP cd mysite python manager.py startapp ...
- django 常用命令
django 常用命令,备忘: django-admin.py startproject test 创建一个项目名叫test的项目 python manage.py startapp app 创建一个 ...
- linux --- 2.常用命令 , python3, django安装
一.常用命令 1.常识命令 ① w 显示终端连接数 ②pwd 我在哪 ③whoami 我是谁 ④which 命令 找到命令的绝对路径 2.linux 命令行的组 ...
- web 架构 /http协议,状态码,django中常用命令
什么是web应用? web应用 架构 :B/S架构 | C/S架构 网站:BS架构其实就是应用程序: B是浏览器 S是sever(实现了wsgi协议,实现了socket的服务端) + applicat ...
- Django中常用命令
Django 基本命令 熟练使用Django常用命令能让你事半功倍!!!! 1. 新建一个 django project django-admin.py startproject project-na ...
- 22,Django常用命令
学习Django你需要了解常见命令的使用,比如创建项目,创建应用,创建超级用户,数据表创建及更新,启动服务器等.这些命令都包含在django-admin.py和manage.py里.除此以外manag ...
- Django常用 命令
Django常用 命令: 安装: pip install django 指定版本 pip3 install django==2.0 新建项目: django-admin.py startproject ...
随机推荐
- 一、linux 内核介绍
参考文档: linux 内核剖析:https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/ 1.1 linux 内核历史 在 20 世纪 ...
- Immunity Debugger学习
1.Immunity Debugger简介 Immunity Debugger软件专门用于加速漏洞利用程序的开发,辅助漏洞挖掘以及恶意软件分析.它具备一个完整的图形用户界面,同时还配备了迄今为止最为强 ...
- ubantu中安装TensorFlow遇到的问题
因为Ubuntu中装有python3.python2两种python环境,在装TensorFlow时需要根据版本进行适配 1.安装pip3 #在python2下安装pip sudo apt-get i ...
- RESTful API学习Day2 - Django REST framework
Django REST framework 参考文档: 官方文档:官方文档 中文文档:中文文档 一.是什么? 基于Django开发RESTful API的一个框架 为什么要用它? 补充: CBV的 ...
- luogu P4491 [HAOI2018]染色
传送门 这一类题都要考虑推式子 首先推出题目要求的式子,枚举正好有\(s\)个颜色的种类(范围\([0,p=min(\lfloor\frac{n}{s}\rfloor,m)]\)),然后对于后面的颜色 ...
- TensorFlow从入门到理解(四):你的第一个循环神经网络RNN(分类例子)
运行代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # set rando ...
- vue框架导入百度地图API接口的方法
百度请求API接口:
- VUX调用例子
首先创建一个vue项目 vue init webpack Vue-Project <1>. 在项目里安装vuxnpm install vux --save <2>. 安 ...
- 美团面试-canvas实现放射图
一个nice的面试官对面试经验匮乏者的温暖To snow peak,哈哈 drawRadial(100, 100, 30, 10) /** *@description *用canvas画放射图 * * ...
- WebLogic XMLDecoder反序列化漏洞复现
WebLogic XMLDecoder反序列化漏洞复现 参考链接: https://bbs.ichunqiu.com/thread-31171-1-1.html git clone https://g ...