django知识点整理
站点Model管理
xadmin可以使用的页面样式控制基本与Django原生的admin一致。
list_display 控制列表展示的字段
search_fields 控制可以通过搜索框搜索的字段名称,xadmin使用的是模糊查询
list_filter 可以进行过滤操作的列
ordering 默认排序的字段
readonly_fields 在编辑页面的只读字段
exclude 在编辑页面隐藏的字段
list_editable 在列表页可以快速直接编辑的字段
show_detail_fileds 在列表页提供快速显示详情信息
refresh_times 指定列表页的定时刷新
list_export 控制列表页导出数据的可选格式
show_bookmarks 控制是否显示书签功能
data_charts 控制显示图标的样式
list_per_page=2分页
制作图表设计的字段是: data_charts(控制显示图标的样式)
title 控制图标名称
x-field 控制x轴字段
y-field 控制y轴字段,可以是多个值
order 控制默认排序
model_icon 控制菜单的图标
self.files
后台model对象保存涉及函数:可以修改定制
-
admin 如下方式
def save_models(self, request, obj, form, change):
if not change:
obj.author = request.user
obj.save() -
xadmin 如下方式
def save_models(self):
obj = self.new_obj
request = self.request
obj.author = str(request.user)
obj.save()def delete_model(self,obj):
#obj 删除数据对象列表类型
# obj = self.obj
#相应的操作
obj.delete()
GitLib代码提交
417 git clone http://code.cbpmgt.com/****/sftp_admin.git
418 ls
419 cd sftp_admin/
420 ls
421 unzip ../Admin1.zip
422 ls
423 git add .
424 git commit -a -m "第一次提交"
425 git push
xadmin后台 美化图标库 http://fontawesome.dashgame.com/
paramiko使用
import os
import paramiko
from django.conf import settings
local_path = os.path.join(settings.MEDIA_ROOT,str(file.file_path))
print(local_path+' '+remote_path)
for server in servers:
client = paramiko.Transport((server.inner_ip_addr, 22))
client.connect(username='root',password="123456")
sftp=paramiko.SFTPClient.from_transport(client)
sftp.put(local_path,remote_path)
sftp.close()
client.close()
centos7 安装python虚拟环境
-
创建虚拟环境命令:
sudo pip install virtualenv 或 sudo pip install virtualenv
sudo pip3 install virtualenvwrapper 或 sudo pip3 install virtualenvwrapper (为了命令更好用) -
查找virtualenvwrapper所在的路径(记得加.sh要不然查到出来的路径不正确)
whereis virtualenvwrapper.sh或 find / -name virtualenvwrapper.sh
-
创建一个管理所有virtualenvwrapper的存放文件夹,一般建议在home目录下
例:mkdir /home/rock/.virtualenvs -
查找 .bashrc 配置文件所在路径
一般在/root/.bashrc
添加以下两句:
export WORKON_HOME=路径/.virtualenvs
source virtualenvwrapper.sh的存放路径
保存退出,并执行
source 路径/.bashrc(激活更新配置)
例:
export WORKON_HOME=/home/rock/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
配置好后要执行以下命令才生效:
source .bashrc
-
创建跟退出
创建新虚拟环境:mkvirtualenv 名称
例:mkvirtualenv python001退出环境:deactivate
如果想指定一个python3来运行的虚拟环境mkvirtualenv python002 -p python路径
例:mkvirtualenv python002 -p /usr/bin/python3 -
快速激活虚拟环境
workon 虚拟环境名称
例:workon python001
https://www.jianshu.com/p/52aa46f61716 xadmin数据excel导入
django模板语言
render 传给前端的变量
可以在html 里边{{ 变量名 }} 直接引用; 支持列表递归{% for i in items %};
-
对于字典,可以有下列用法:
{% for row in user_dict.keys %}
{% for row in user_dict.values %}
{% for row in user_dict.items %} 得到元组
{% for k,row in user_dict.items %}
- {{k}}-{{row}}
-
django过滤器|截断字符长度
{{ post.title | slice:":50" }}
-
如果前端 js 需要字符类型的话;
python 字符串 序列化后,前端正则处理
后端
json.dumps(变量) 序列化
前端
正则去除乱码字符:
console.log({{ sources_json }})
reu = new RegExp(""", "g");
django后台在删除字段时候,不会自动删除文件,但是django提供了方法供我们删除,pre_delete,post_delete
from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
class Shell_file(models.Model):
file_path = models.FileField(upload_to='Script/')
file_name = models.CharField(max_length=100)
@receiver(pre_delete,sender=Shell_file)
def model_delete(sender,instance,**kwargs):
instance.file_path.delete(True)
class Article(models.Model):
title = models.CharField(max_length=80)
text = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
attach = models.CharField(max_length=255) # 文件上传后保存在服务器上的路径
@receiver(post_delete, sender=Article)
def delete_upload_files(sender, instance, **kwargs):
files = getattr(instance, 'attach', '')
if not files:
return
fname = os.path.join(settings.MEDIA_ROOT, files)
if os.path.isfile(fname):
os.remove(fname)
django xadmin后台字段长度控制
在model 类内定义函数限制字数,然后替换list_display = [ 'pub_key' ]添加为我们添加的函数名
public_key = models.TextField(max_length=255,verbose_name="公钥",null=True,blank=True)
def pub_key(self):
if len(str(self.public_key)) > 100:
return '{}...'.format(str(self.public_key)[0:100])
else:
return str(self.public_key)
pub_key.allow_tags = True
django跨域请求:前后段分离涉及
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_POST
from django.http import HttpResponse, JsonResponse# JsonResponse 用于返回 JSON 数据
在函数上方引入装饰器,对指定的函数不检查csrf

浙公网安备 33010602011771号