Django-管理站点重写admin模板

使用Django的admin管理工具,可以快速的构建自己的管理平台,使用Django原生太的模板更能使我们节省很多工作量。但有时候,模板上展现的内容并不能满足我们的业务需求,我们需要些许调整就可以达到我们想要的效果,此时我们可以通过重写admin模板来实现。

Django 模板

视图 基本模板名
更改列表 admin/change_list.html
增加/编辑表单 admin/change_form.html
删除确认 admin/delete_confirmation.html
对象历史 admin/object_history.html

Django源码之Commands

使用django开发,对python manage.py ***命令模式肯定不会陌生。比较常用的有runserver,migrate…本文讲述如何自定义扩展manage命令。

源码分析

1.manage.py的源码

  • 首先设置了settings文件,本例中TestDango指的是project_name。
  • 其次执行了一个函数django.core.management.execute_from_command_line(sys.argv),这个函数传入了命令行参数sys.argv
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #!/usr/bin/env python
    import os
    import sys

    if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TestDango.settings')
    try:
    from django.core.management import execute_from_command_line
    except ImportError as exc:
    raise ImportError(
    "Couldn't import Django. Are you sure it's installed and "
    "available on your PYTHONPATH environment variable? Did you "
    "forget to activate a virtual environment?"
    ) from exc
    execute_from_command_line(sys.argv)

Python3.x 的 CGIHTTPServer

在Python2.x版本里,/usr/bin/lib/python2.x/ 目录下会有 BaseHTTPServer.py, SimpleHTTPServer.py,CGIHTTPServer.py
但是在Python3.x里,就没有上面的3个文件,而是合闭到了 /usr/bin/python3.x/http/server.py文件里了。

Python3 使用

  • Python CGI脚本需要放在’/cgi-bin’, ‘/htbin’ 目录,并且脚本需要nobody 访问权限

Python中Switch—Case实现

学习Python过程中,发现没有switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现。所以不妨自己来实现Switch/Case功能。

  • 方法一
    通过字典实现
    1
    2
    3
    4
    5
    6
    def foo(var):
    return {
    'a': 1
    'b': 2,
    'c': 3,
    }.get(var,'error') #'error'为默认返回值,可自设置

Jupyterlab 安装配置

安装

1
2
pip install jupyterlab
jupyter-lab

更改配置

1
2
3
4
5
6
#配置存放位置
C:\Users\dbSven\.jupyter
#在配置文件目录执行,生成配置文件
jupyter notebook --generate-config
#修改jupyter_notebook_config.py
c.NotebookApp.notebook_dir = 'D:\WorkSpace\jupyter'

Python所有的魔术方法钩子函数

C.init(self[, arg1, …]) 构造器(带一些可选的参数)
C.new(self[, arg1, …]) 构造器(带一些可选的参数)通常用在设置不变数据类型的子类。
C.del(self) 析构器
C.str(self) 可打印的字符输出;内建str()及print 语句
C.repr(self) 运行时的字符串输出 内建repr() 和‘‘ 操作符
C.unicode(self) Unicode 字符串输出;内建unicode()
C.call(self, *args) 表示可调用的实例
C.nonzero(self) 为object 定义False 值 内建bool() (从2.2 版开始)
C.len(self) “长度”(可用于类) 内建len()

Pyenv 安装Python 3.7

安装环境

Ubuntu 14.x

安装Pyenv

1
2
3
4
5
6
7
8
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
# 安装后会提示环境写入环境
vim ~/.bashrc
#写入:
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
source ~/.bashrc