+ 我要发布
我发布的 我的标签 发现
公开标签 #Python
方法一:使用 in 或 not in 来判断。首推该方法。 dict = { 'name': 'Jack', 'age': '21' } 'name' in dict => True 'name' not in dict => False 'id' in dict => False 'id' not in dict => True 'age' not in dict => False 方法二:使用 in dict.keys() 方法来判断,也可以使用 not in dict.keys() dict =
有一个 Python 列表,如下: pl = [1,2,3,4,5,6,7,8,9] 通过 for 循环 if 条件判断找出这个数字列表中的奇数: odd = [str(x) for x in pl if x%2==1] print(','.join(odd)) 打印结果: 1,3,5,7,9
直接使用 SQLAlchemy 的 scalar() 就可以进行求和计算了。 session.query(func.sum(Money.amount)).filter(.....).scalar() 在介绍下查询对象时常用到的其他几种方法,包括 .one(),.all(),.scalar(),.one_or_none(),.get(),.first()等。 ▶ .one() 如果只能查询到一个结果,返回它,否则抛出异常。 没有结果时抛sqlalchemy.orm.exc.NoResultFound,有超
Python项目使用的Flask框架,操作数据库使用的 SQLAlchemy。 from sqlalchemy import Column, Integer, String, SmallInteger from sqlalchemy import func __mysql = 'mysql+pymysql://xxx@127.0.0.1:3306/xxx?charset=utf8mb4' __engine = create_engine(__mysql, pool_size=5, max_overflo
Python 列表可以使用 data.sort() 或 sorted(data) 排序。 注意: 1,sort()函数会直接修改原有列表,永久改变,无法返回,函数返回为None 2,sorted()函数会返回一个排序后的列表,原有列表保持不变 3,sort() 效果高,如果改变原来的列表不影响逻辑,优先使用 sort() 一,单个属性排序 利用operator模块和sort()函数根据单个属性进行排序 import operator class Student: def __init__(self, i
使用SQLAlchemy时报错: sqlalchemy.orm.exc.DetachedInstanceError: Instance <User at 0x809ab1f> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/bhk3) 解决方案: 在初始化数据库的代码中,将 maker = sessionmake
项目开发使用的是 Python Flask 框架,每次修改前端 HTML 和静态文件后,都要重启一下 Flask 服务后才能查看修改的效果,非常不方便。 Flask框架提供了内部配置可以让更改及时显示,不需要重启 Flask 服务,只需要刷新页面就能查看修改的效果。 只需要在代码中添加如下代码即可: app.jinja_env.auto_reload = True app.config['TEMPLATES_AUTO_RELOAD'] = True 完整代码: from main import crea
使用 @app.context_processor 和 @app.app_template_global() 修饰器的方法,可当做全局上下文变量在所有模板中直接被调用。 @app.context_processor 修饰的方法返回的是一个字典(注意 context_processor 后没有括号)。例如: @app.context_processor def context_user(): user={'name':'Jack','email':'jack@jack.com'} return {'use
将每个方法中的 try...catch... 抽出来,写成一个修饰器,代码简单更容易维护 以下是无参修饰器: from functools import wraps def log_exception(func): @wraps(func) def wrapper(*args, kwargs): try: return func(*args, kwargs) except Exception as e: print("[error in {}] message: {}\nargs:{}\nkwargs:
Flask开发中报错:AttributeError: 'User' object has no attribute 'is_active' 原因是 User 类没有继承 UserMixin,修改如下: class User(UserMixin...
使用 requests 时如果 url 是 https,会报错: urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)> 只需要在文件开头加入以下代码: import ssl ssl._create_default_https_context = ssl._c
Python开发中,如果使用 SQLAlchemy 操作数据库来更新数据,当 query 使用的是主键而不是对象时会报错: ArgumentError("subject table for an INSERT, UPDATE or DELETE expected, got Column('id', Integer(), table=<user>, primary_key=True, nullable=False)." 数据库表名: user 数据库表对应的对象(对象是通过 __tablename__ 属
def get_bit(b): byte = ord(b) print("byte:{}".format(byte)) byte = bin(byte)[2:].rjust(8, '0') print("byte:{}".format(byte)) for bit in byte: print(bit) #字符使用: get_bit('a'.encode()) #输出: byte:97 byte:01100001 0 1 1 0 0 0 0 1 #数值使用: num = 2 get_bit(num.t
driver = webdriver.Chrome() driver.get("xxx.com/abc.html") obj = driver.find_element_by_id('id1') selenium版本更新后,不再支持 find_element_by_id 方法 将其修改为: obj = driver.find_element(By.ID, 'id1') 注意 By.ID 的大小写 By枚举值如下: ID = "id" XPATH = "xpath" LINK_TEXT = "link
Python常用的爬虫框架推荐: 1、Scrapy: Scrapy是一个基于Python的爬虫框架,它提供了一个基于Twisted的异步网络框架,可以快速地从网站中提取信息。 2、BeautifulSoup: BeautifulSoup是一个Python库,用于从HTML和XML文件中提取信息。它可以从网页中提取出标签、属性和文本,并且可以轻松地处理嵌套结构。 3、PySpider: PySpider是一个轻量级的Python爬虫框架,具有分布式架构和强大的Web UI,可以快速地构建和部署爬虫程序。
各类Python代码文件的后缀,包括:.py, .ipynb, .pyi, .pyc, pyd, pyw, .pyx .py 最常见的Python代码文件后缀名,官方称Python源代码文件。 不用过多解释了~ .ipynb 这个还是比较常见的,.ipynb是Jupyter Notebook文件的扩展名,它代表"IPython Notebook"。 学过数据分析,机器学习,深度学习的同学一定不陌生! .pyi .pyi文件是Python中的类型提示文件,用于提供代码的静态类型信息。 一般用于帮助开发人员
🎇 强大的自研内核 本库采用全自研的内核,内置了 N 多实用功能,对常用功能作了整合和优化,对比 selenium,有以下优点: 无 webdriver 特征 无需为不同版本的浏览器下载不同的驱动 运行速度更快 可以跨<iframe>查找元素,无需切入切出 把<iframe>看作普通元素,获取后可直接在其中查找元素,逻辑更清晰 可以同时操作浏览器中的多个标签页,即使标签页为非激活状态,无需切换 可以直接读取浏览器缓存来保存图片,无需用 GUI 点击另存 可以对整个网页截图,包括视口外的部分(90以上版本
1,在mac上安装python3 方法1:在python官网下载自己想要的版本到本地,然后安装 方法2:使用homebrew安装python 安装homebrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装python: brew install python3 查看安装是否成功: 直接在命令行输入 python3 即可 2,安装vscode
Flask和Spring Boot都是流行的Web应用框架,它们都具有快速开发、灵活性和可扩展性等特点。 以下是它们之间的比较: 1. 开发速度:Flask的快速开发特性使其在小型项目和快速迭代的项目中具有优势。而SpringBoot则具有自动配置和简化开发的优势,适合大型项目和复杂的应用程序。 2. 生态系统:SpringBoot具有庞大的生态系统,包括大量的库、插件和工具,可以轻松地与其他开源项目集成。而Flask则相对较小,但也有一些流行的库和插件可供选择。 3. 社区支持:SpringBoot有
如果被转化的对象有汉字,在使用 json.dumps 转换成json时,会出现编码问题 只需在 json.dumps 中设置 ensure_ascii=False: json.dumps(content, ensure_ascii=False) 如果不设置,dumps后的中文为(已汉字为“计划”为例): \u8ba1\u5212 设置 ensure_ascii=False的结果: 计划 ensure_ascii 参数说明: ensure_ascii 是一个布尔值参数,用于控制输出时是否对输出的结果进行A
发生这个问题一般有3种可能。 第一种:多开 PyCharm,并且有1个正在运行,此时运行其他 PyCharam 就会报错 解决方案:将正在运行的项目停止,然后运行当前项目。 第二种:PyCharm运行时非正常关闭,导致端口未释放。 解决方案:kill掉占用该端口的程序。 1,找出占用端口的程序(PyCharm默认使用的端口是 5000) $ lsof -i:5000 2,kill 掉 500 端口的程序(假设找到使用 5000 端口的PID 是 1234) $ kill -9 1234 第三种:其他程序
Python项目部署后,将新项目添加到/etc/supervisor/conf.d/ 中,然后重新加载: supervisord -c /etc/supervisord.conf 此时会报错: Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervi
Python抓取数据时,如果header添加了: accept_encoding = 'gzip, deflate, br' 无论如何转码都会出现 'utf-8' codec can't decode byte 0xxx in position 1: invalid start byte 的错误 只需将 accept_encoding = '' 设置为空即可 原因: 本地接收压缩格式的数据,服务器传过来压缩格式gzip的文件,而解压这种gzip文件只能用deflate算法,浏览器能够自动解压,程序却不能
重点: 不要在PyCharm里直接安装 wkhtmltopdf !!! 从wkhtmltopdf官网下载macOS下的pdg安装包,下载页面:wkhtmltopdf 下载完后安装,通过 which 找到安装路径 import pdfkit config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf') pdfkit.from_string("abc", "0.pdf", configuration=config)