- 博客(22)
- 收藏
- 关注
原创 C语言类型占内存大小
32位环境涉及"ILP32"数据模型,是因为C数据类型为32位的int、long、指针。而64位环境使用不同的数据模型,此时的long和指针已为64位,故称作"LP64"数据模型。现今所有64位的类Unix平台均使用LP64数据模型,而64位Windows使用LLP64数据模型,除了指针是64位,其他基本类型都没有变。ILP32指int,long和pointer是32位的,ILP64指int,long,pointer是64位,LP64意思是long和pointer是64位,
2023-09-07 00:34:55
529
原创 Django 外键字段的参数on_delete的不同删除模式
- models.CASCADE,删除关联数据时,与之关联的数据也删除。 - models.DO_NOTHING,删除关联数据时,不做任何处理,引发错误IntegrityError。 - models.PROTECT,删除关联数据时,如果删除的数据设有外键字段并且关联其他数据表,删除失败,引发错误ProtectedError - models.SET_NULL,删除关联数据,与之关联的值设置为null(前提FK字段需要设置为null=True,否则提示异常) - models.SET_DEFAUL.
2020-10-07 13:20:33
499
原创 Django自定义文件上传处理过程
1、创建一个handler.py的文件from django.core.files.uploadedfile import *from django.core.files.uploadhandler import *class MyFileUploadHandler(TemporaryFileUploadHandler): def new_file(self, *args, **kwargs): super().new_file(*args, **kwargs) # 自定义文件上
2020-10-05 16:10:51
498
原创 Django配置jinja2模板
前提:必须先将jinja2模块下载安装好。1、在与Django项目同名的目录下创建jinja2.py文件,并将如下代码放到文件中。from django.contrib.staticfiles.storage import staticfiles_storagefrom django.urls import reversefrom jinja2 import Environment# 将jinja2模板定义到Django环境中def environment(**options): en
2020-10-05 15:51:09
583
1
原创 Django 自定义过滤器
from django import templateregister = template.Library()# 使用方式 {{ 'HELLO' | lower }}# 只能接收一个参数@register.filterdef lower(value): if isinstance(value, str): return value.lower() else: return 'values must be a str'# 使用方式 {% mu
2020-09-09 21:41:23
164
原创 Django 外键查询
创建三张表,详情如下:class Publish(models.Model): id = models.AutoField(primary_key=True, auto_created=True) pname = models.CharField(max_length=40) city = models.CharField(max_length=50) def __str__(self): return self.pnameclass Author(m
2020-08-28 00:26:24
4368
1
原创 Go 语言defer的使用以及注意事项
首先在学习defer之前要先了解Go语言的return是怎么操作的。return:分为两个步骤,1、首先执行的将需要返回的数据进行赋值,2、然后才是真正的返回数据defer:延迟执行,后面必须跟一个函数调用语句(expression in defer must be function call),否则报错: syntax error: unexpected ++ at end of statement。defer的执行步骤在return语句的1和2之间。package mainimp
2020-08-06 23:50:06
1039
原创 python configparser模块的基本操作
简介: configparser模块是一个python用来方便处理配置文件,下面开始介绍。# 导入模块import configparser# 实例化一个对象cfg = configparser.ConfigParser()# 将数据写到文件# 如果添加了[DEFAULT],会为每个section的options中默认添加其内容# cfg['DEFAULT'] = {'description': 'This is userinfo'}cfg['Tom'] = {'name': 'Tom
2020-07-31 21:58:22
155
原创 python optparse模块以及与sys.argv的对比
对于optparse模块的操作是一个类似于sys.argv的,都是通过外界的输入来获取值,不过sys.argv获取到值后生成的是一个列表,并且第一个位置上是自己的文件名,如下:# 通过sys.argv 获取的值data_list = sys.argvprint(data_list)# 第一次# 运行python test.py 1 2 3 4# 输出['test.py', '1', '2', '3', '4']# 第二次# 运行python test.py -u root -p r
2020-07-29 15:02:54
206
原创 Python 日志以及logging模块的使用
关于Python中如何使用日志,使用logging模块import logging# 错误类型的等级大于等于30的将会被记录logger = logging.basicConfig(filename='loger.log', filemode='a', format='%(asctime)s-%(name)s-%(levelname)s-%(module)s: %(message)s'
2020-07-20 21:07:29
161
原创 Python 反射在面向对象中的应用
getattr 和 hasattrimport hashlibclass Account: salt = b'2020-20-20' userinfo = {} def __init__(self): self.name = None self.pwd = None def register(self): val = hashlib.md5(Account.salt) val.update(self.p
2020-07-19 23:03:55
101
原创 python类变量(静态字段)和实例变量的一些差别
class Foo: class_list = [] def f(self): self.class_list.insert(0, 3) return self.class_listobj = Foo()print(obj.f())# print(id(obj.class_list))obj1 = Foo()print(obj1.f())# print(id(obj1.class_list))# 输出 [3] [3,3]#
2020-07-17 23:03:07
370
原创 python 构造方法
1、第一种情况,没有__new__class Foo(object): def __init__(self, name): self.name = name print(2) print(self.name)obj = Foo('小红')# 输出: 2 小红2、第二种情况,有__new__,但__new__中没有返回值class Foo(object): def __init__(self, name): se
2020-07-17 22:25:37
496
原创 Python 约束
任务:要求其他接口必须继承User类,并且重写login()方法,后期各接口只调用login()方法来实现登录。1、主动抛出错误class User: """ 必需重写login()方法 """ def login(self): raise NotImplementedError('.login() must be overwrite')class WeChat(User): def __init__(self, name): self.name = name # 这里重写
2020-07-17 22:00:32
474
原创 PyMySQL的基本操作
1、查找数据import pymysql# 简单的查找# 连接数据库 conn = pymysql.connect(host='127.0.0.1', user='root', password='******', database='authoritydb')# cursor=pymysql.cursors.DictCursor,是为了将数据作为一个字典返回 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) sql = 'sele
2020-07-16 23:11:16
17587
1
原创 MySQL的视图、函数、存储过程、动态执行SQL
1、视图-- 创建视图 crate view v1 as select * from A where id > 1;-- 删除视图 drop view v1;-- 修改视图 alter view v1 as select * from A where id > 2;-- 通过调用视图来查询 select * from v1;-- 说明 当在A表中更新了数据时,视图也会跟着更新数据,反之亦然。2、触发器-- 创建触发器--往A表中添加数据时,同时也会在B表插入对应数据
2020-07-14 23:15:00
308
原创 MySQL数据库的增删改查
1、数据库的操作-- 创建数据库-- 使用默认的校对规则就行create database 数据库名 default character set utf8 collate utf8_general_ci;-- 查询所有的数据库show databases;-- 删除数据库drop database 数据库名2、表的操作-- 创建表之前要先进入某个数据库里面use 数据库名;-- 创建表create table 表名( 列名 类型 是否为空, 列名 类型 是否为空, 列名 类型
2020-07-12 23:37:25
122
原创 关于SQLAlchemy的警告Warning: (1366, “Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...‘ for colu
关于python使用SQLALchemy发出警告:Warning: (1366, “Incorrect string value: ‘\xD6\xD0\xB9\xFA\xB1\xEA…’ for column ‘VARIABLE_VALUE’ at row 489”) result = self._query(query)这个其实并不影响我们操作,如果先要消除这个警告可以换一个DBAPI使用,例如mysqlconnector,这个问题就可以解决。...
2020-07-10 22:57:59
388
原创 SQLAlchemy的增删改查
1.连接数据库# 连接数据库engine = create_engine('DB+DBAPI://用户名:密码@主机名:端口号/数据库名称?charset=字符编码', max_overflow=5)# DB 是所用的数据库(mysql,postgreSQL,oracle等等)# DBAPI (pymysql, psycopg2, mysqlconnector等等)# max_overflow 最大连接数Session = sessionmaker(bind=engine)session =
2020-07-10 22:46:01
1347
原创 Python 列表(list)的操作
本文关于列表的操作主要从以下几点进行分析列表的增加列表的删除列表的更改列表的查询列表操作的其他方法1、列表的增加列表的增加有:list1 + list2, 两个列表直接相加,有返回值list.append(value),value表示要添加的元素list.extend(value),value表示要添加的元素list.insert(index, value), index是你想要插入的列表位置(从零开始),value是你想要插入的新元素。>>> val1 =
2020-06-26 00:08:21
1582
原创 Python 字符串相关的一些基本操作
1、字符串的基本操作操作1、连接字符串>>> first_name = 'Tom'>>> last_name = 'Smith'>>> first_name + last_name'TomSmith'# 为了美观这里可以在fist_name和last_name中间加一个' '>>> first_name + ' ' + last_name'Tom Smith'# 这里还可用str.join方法进行添加,不过它是将字
2020-06-24 23:25:29
138
原创 关于MySQL报错 ERROR 1215 (HY000): Cannot add foreign key constraint
@关于MySQL报错 ERROR 1215 (HY000): Cannot add foreign key constraint创建表表一(学生):mysql> create table student( -> sid int auto_increment, -> sname varchar(10) not null, -> gender char(1) not null, -> primary key (sid) -> )
2020-06-24 11:34:45
7757
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人