• django数据处理


    django积累

    连接数据库:

    连接数据库 :
     1.创建数据库
        create database oa default charset utf8;
        
     2.Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually. ??
    
    ---》时区错误,MySQL默认的时区是UTC时区,比北京时间晚8个小时。 在mysql的命令模式下,输入:
    set global time_zone='+8:00';
    
    3.__init__.py导入pymysql
    import pymysql
    pymysql.install_as_MySQLdb()   #取代mysqldb
    
    

    模板

    #模板
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'oa',
            'HOST': '127.0.0.1',
            'PORT': 3306,
            'USER': 'root',
            'PASSWORD': '123456',
            'CHARSET':'utf8'
        }
    }
    
    
    数据库迁移: 
    	“生成迁移”和“执行迁移”来完成关系型数据库中二维表的创建
    
    (venv)$ python manage.py makemigrations vote
    ...
    (venv)$ python manage.py migrate
    
    注意:为了给vote应用生成迁移文件,需要修改Django项目settings.py文件,在INSTALLED_APPS中添加vote应用
    

    后台管理

    使用Django提供的后台管理来添加学科和老师信息!!
    
    1.创建超级用户:
    	createsuperuser
    2.注册模型类和模型管理类
    	admin.site.register(models.Userinfo)
    3.admin后台添加数据,修改数据。
    

    功能扩展:

    admin其他功能扩展
        list_display  		控制展示字段
        list_display_links  控制跳转字段
        search_fields       控制搜索框 多个字段是或的关系
        list_filter			通常只放外键字段
        actions				自定义批量操作的方法
    
        class BookConfig(admin.ModelAdmin):
            list_display = ['username','password','register_time','avatar']
            list_display_links = ['password']
            search_fields = ['username','password']
            list_filter = ['blog']
    
            def patch_init(self,request,queryset):
                print(queryset)  # <QuerySet [<Userinfo: tank>, <Userinfo: admin>, <Userinfo: oscar>, <Userinfo: jason>, <Userinfo: egon>]>
    
                patch_init.short_description = '批量更新'
                actions = [patch_init]
    

    日志打印:

    LOGGING = {
        'version': 1,
        # 是否禁用已经存在的日志器
        'disable_existing_loggers': False,
        # 日志格式化器
        'formatters': {
            'simple': {
                'format': '%(asctime)s %(module)s.%(funcName)s: %(message)s',
                'datefmt': '%Y-%m-%d %H:%M:%S',
            },
            'verbose': {
                'format': '%(asctime)s %(levelname)s [%(process)d-%(threadName)s] '
                          '%(module)s.%(funcName)s line %(lineno)d: %(message)s',
                'datefmt': '%Y-%m-%d %H:%M:%S',
            }
        },
        # 日志过滤器
        'filters': {
            # 只有在Django配置文件中DEBUG值为True时才起作用
            'require_debug_true': {
                '()': 'django.utils.log.RequireDebugTrue',
            },
        },
        # 日志处理器
        'handlers': {
            # 输出到控制台
            'console': {
                'class': 'logging.StreamHandler',
                'level': 'DEBUG',
                'filters': ['require_debug_true'],
                'formatter': 'simple',
            },
            # 输出到文件(每周切割一次)
            'file1': {
                'class': 'logging.handlers.TimedRotatingFileHandler',
                'filename': 'access.log',
                'when': 'W0',
                'backupCount': 12,
                'formatter': 'simple',
                'level': 'INFO',
            },
            # 输出到文件(每天切割一次)
            'file2': {
                'class': 'logging.handlers.TimedRotatingFileHandler',
                'filename': 'error.log',
                'when': 'D',
                'backupCount': 31,
                'formatter': 'verbose',
                'level': 'WARNING',
            },
        },
        # 日志器记录器
        'loggers': {
            'django': {
                # 需要使用的日志处理器
                'handlers': ['console', 'file1', 'file2'],
                # 是否向上传播日志信息
                'propagate': True,
                # 日志级别(不一定是最终的日志级别)
                'level': 'DEBUG',
            },
        }
    }
    
  • 相关阅读:
    最大熵模型中的数学推导
    最大似然估计总结
    减压放松的一些网站
    决策树
    【转】贝叶斯分类干货
    【转】数学之美番外篇:平凡而又神奇的贝叶斯方法
    信号量与并发控制
    枚举与字符串映射
    Block与参数
    Sublime Text 小计
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12025339.html
Copyright © 2020-2023  润新知