python随笔
Python数据库配置
'NAME': 'day03',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': 3306,
'CHARSET': 'utf8'
init.py配置
import pymysql
pymysql.install_as_MySQLdb()
创建APP
~/pyenv/versions/3.6.9/bin/python3.6 manage.py startapp app01
创建数据库字段
register_time = models.DateField() # 年月日
"""
DateField
DateTimeField
两个重要参数
auto_now:每次操作数据的时候,该字段会自动将当前时间更新
auto_now_add:在创建数据的时候会自动将当前的时间记录下来,之后只要不是人为修改,那么就一直不变
"""
创建数据库记录
~/.pyenv/versions/3.6.9/bin/python3.6 manage.py makemigrations
提交数据库修改
~/.pyenv/versions/3.6.9/bin/python3.6 manage.py migrate
测试环境
在test.py里面写入代码:
import os
if name == "main":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day03.settings")
import django
django.setup()
# 所有代码写在判断语句下面
from app01 import models
res = models.User.objects.all()
查看原生 MySQL语句 res.query
配置文件写入:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler'
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG'
}
}
}
查询SQL语句
1.all() 查看所有
2.filter()带有过滤条件的查询
3.get() 直接拿数据 但是如果条件不存在,报错
4.first() 拿取第一条
5.last() 拿取最后一条
6.values() models.User.objects.value('name','age') 列表套字典
7.values_list() 列表套元祖
8.distinct() 去重 一定要是一模一样的数据,如果带有主键,结果不一样,一定不要带主键
9.oder_by() model.User.objects.order_by('age') 升序 降序 order_by('-age')
10.reverse() 翻转 前提是数据已经做了排序 order_by('age').reverse()
11.count() 统计当前总数
12.exclude() 排除XXX在外 models.User.objects.exclude(name='zyb')
双下划线查询
res = models.User.objects.filter(age__lt=35) 年龄大于35岁的
models.User.objects.filter(age__in=[18,20,35])年龄是18或20或35
models.User.objects.filter(age__range=[18,35])年龄在18-35之间
models.User.objects.filter(name__contains='n')模糊查询 名字含有n的 默认区分大小写
models.User.objects.filter(name__icontains='n')模糊查询 名字含有n的 默认区分大小写
models.User.objects.filter(name__startswith='j') 以j开头
models.User.objects.filter(name__endswith='j') 以j结尾
models.User.objects.filter(register_time__month='1') 注册日期是1月份的
models.User.objects.filter(register_time__year='2020') 注册日期是2020年的
浙公网安备 33010602011771号