- 博客(81)
- 收藏
- 关注
原创 django项目迁移到乌班图后uwsgi启动报错 “no python application found, check your startup logs for errors”
djaong迁移到ubuntu18.04,uwsgi启动报错 “no python application found, check your startup logs for errors“
2023-03-22 22:40:51
346
原创 乌班图安装nginx 出现 make: *** No rule to make target ‘build‘, needed by ‘default‘. Stop.
缺少依赖包pcre :./configure: error: the HTTP rewrite module requires the PCRE library.
2023-01-08 16:02:23
3960
原创 使用python处理23个G(约一千万条)的文本所需时间,线程Thread跟协程async、await对比
使用的都是python内置的库跟函数,每一个文件使用一个线程,读取一行先截取字符串判断name是否等于张三,后用json模块将每一行转换为dict类型获取时间戳转换为“年-月-日”格式放到一个字典里面,每一个独立的日期为key,值为列表套字典格式,筛选出来的完全足够放在内存中,而不用先写入文件。2、 将排序好的结果重新写⼊新的⽂件,规则如下: 按照 timestamp 以天为维度组织⽂件,新⽂件的命名规则为 年-月-日,例如(2022-1-12), 将所有位于同⼀天的数据存放于同⼀个⽂件中。...
2022-08-23 22:34:06
1435
3
原创 2021-09-22 一些shell基础练习题
1、判断/etc/inittab文件是否大于100行,如果大于,则显示”/etc/inittab is a big file.”否者显示”/etc/inittab is a small file.”(1)代码:(2)运行结果:2、给定一个用户,来判断这个用户是什么用户,如果是管理员组用户,则显示“该用户为管理员”,否则显示“该用户为普通用户”(1)代码:(2)运行结果:3、判断某个文件是否存在,文件存在输出“存在”,否则输出“不存在”;如果文件存在且大小为0,则输出“文件大小为0”,反之
2021-09-22 17:33:36
408
原创 Linux系统启动过程及用户登录过程原理分析(参考自鸟哥的私房菜)
linux系统启动过程:大概流程:BIOS->MBR->boot loader->内核->systemd(centos 7)->登陆界面1、加载BIOS的硬件信息及进行自检,根据设定获取第一个可启动的设备(通常是硬盘)按下开机电源键,系统先去加载BIOS,并通过BIOS程序去加载CMOS,获取CMOS内设置的值取得主机的各项硬件配置信息,如硬盘、系统时间,CPU与接口设备的沟通频率,设备启动顺序,各周边总线的是否启动PnP(即插即用)等信息,取得这些信息后BIOS会进行开
2021-09-14 18:02:00
1267
原创 python高并发: 进程线程协程的一起使用实例
高并发,使用进程开线程开协程方式向网站发送请求,查看请求量import geventfrom gevent import monkeyfrom threading import Threadfrom multiprocessing import Processimport requestsmonkey.patch_socket()url = 'https://'def task(): """任务""" for i in range(10): r = re
2021-07-27 16:42:47
491
原创 python寻找列表最大连续非空序列跟空序列(双色球最大连续,最大遗漏)
原因:某位朋友的老板喜欢玩双色球,需要做统计,不知道有什么用,特地托我帮忙任务部分截图图如下:灰色部分为需要统计最大连续、最大遗漏数下面是代码:import copys = '''18.18.......'''l = s.split('\n') # 以换行符分割:excel表格每一行都有一个换行符# 最大连续l1 = []l2 = []for i in l: if i != '': l1.append(i) elif i == ''
2021-07-27 11:00:26
522
1
原创 JavaScript在ES5中实现继承
使用call()方法改变this指向实现继承function A(x, y){ this.x = x; this.y = y;}// 如果要继承父类的方法,添加下面两句B.prototype = new A()B.prototype.constructor = B // 利用对象的方式修改了原型对象要指回构造函数Bfunction B(x, y){ A.call(this, x, y) // 改变this指向}obj = new B(1, 2);...
2021-02-28 18:07:52
152
原创 python通用装饰器
def f1(func): def f2(*args, **kwargs): # 逻辑 return func(*args, **kwargs) return f2@f1 # 等价于 test = f1(test)test(a,b)
2021-02-18 15:14:09
156
原创 python协程:gevent模块
协程比线程切换开销小import timeimport gevent # 协程:当一个任务需要耗时from gevent import monkey # 补丁monkey.patch_all() # 将耗时的代码转自动换成gevent.sleep(),比如time.sleep()def t1(a): while 1: print(a) time.sleep(1) # 会自动转换成gevent.sleep(1)def t2(b): w
2021-02-07 22:32:48
175
原创 python生成器应用:斐波那契数列数列
生成器是一种特殊的迭代器,关键是yield,执行yield后会暂停,下次从下一行执行,# 定义了yield的函数称为生成器对象(一种特殊的迭代器)def fun(num): '''生成器应用:斐波那契数列''' print('开始') c = 0 d = 1 while c < num: yield c # 返回c后暂停,下次再调用会从下一行执行:c, d = d, c + d c, d = d, c + d
2021-02-07 21:20:43
281
原创 python自定义迭代器应用:生成斐波那契数列
再类中,定义了__iter__(self)方法就成为了可迭代对象,再在定义一个__next__(self)方法最终成为迭代器迭代器是在你要用的时候再给你造一个值,相当于买手抓饼,你说要买的时候人家才给你现场做,节约了内存。class A: def __init__(self, num): self.num = num self.x = 0 self.y = 1 def __iter__(self): # 必须:定义了__iter__()
2021-02-07 20:48:49
301
原创 jQuery获取元素距离页面底部的距离,大于0时变为固定定位
有时候由于页面东西太少,导致底部的元素自动浮上来,导致底部留有一大片空白,影响美观。js中只能获取元素距离顶部top跟距离左边left的距离。响应获得元素距离底部的距离,则:使用浏览器可视区域的高度 - 元素距离顶部的距离 = 元素距离底部的距离<div class="bottom">我的页面最底部元素</div><script>// 获取元素距离顶部的距离跟可视区域的高度 var b_top = $('.bottom').offset().top; var
2021-01-30 13:20:13
3283
原创 flask在*蓝图*中定义错误页面
今天想在自定义下错误页面,发现网上的都是做了个简单的例子,跟官网一样,但是在实际项目中一般都是用蓝图的,注意是在蓝图下自定义错误页面。在蓝图下使用:@蓝图名称.app_errorhandler(404)先在templates目录下新建404页面# 自定义错误页面,e未错误信息@main_bp.app_errorhandler(404)def page(e): '''页面未找到错误''' print('404**************************************
2021-01-23 20:55:56
142
原创 flask:使用jquery post请求带上csrf_token
前言:今天制作删除按钮时遇到了,所以就记录下来很简单,根据表单表单提交是这样的<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">ajax就是这样咯,键值对$.post("url", {csrf_token:"{{ csrf_token() }}"});...
2020-12-22 21:10:27
540
原创 flask模板引擎遍历,使每一行输出固定个数HTML标签
前言,今天在flask模板引擎中,需要前端每一行只能显示四个a标签,超出则换行。测试代码s = 'qwerkfjdgkajfkdsjflsd'for i in range(1, len(s)): print(s[i], end='') if i % 4 == 0: print()结果项目片段代码:flask+bootstrop <div class="row"> {% for i in range(1, my_list | len
2020-12-14 21:33:34
451
原创 flask中SQLAlchemy使用MySQL的mediumtext字段类型
模型中添加MySQL中的mediumtext字段类型安装sqlalchemy后,导入from sqlalchemy.databases import mysql # 定义MySQL特有的字段类型在模型中使用class UserModel(FlaskModel): __tablename__ = 'user' # 定义字段类型 content = db.Column(mysql.MSMediumText, nullable=False)迁移后在MySQL数据库中就会生成
2020-12-13 15:44:57
1715
原创 jquery解决:用户更换头像后浏览器依然显示原来的图片(浏览器缓存)
相同的请求时,浏览器会先在本地查找是否缓存有,解决办法:只要不是相同的请求就行了,添加js随机数使用class是因为我一个页面需要使用两张同样的图片<img class="icon" src="" alt="头像">js<script>// 需要引入jQuery,好处就是一个页面能使用多个$(function(){});$(function(){ $('.icon_image').attr('src', '/static{{ g.user.icon }}
2020-12-09 21:12:17
380
原创 flask后端使用缓存防止表单重复提交表单
原因:今天使用flask发送邮件时,快速点击了发送按钮,然后导致表单重复提交,邮件发送了多封的问题。解决:使用缓存思路:第一次提交表单的时候,处理完了后将一个标记存入缓存中,设置过期时间30秒,然后在最开始post请求时判断缓存里是否有标记,有则表示重复提交表单了(真是太聪明了)安装:pip install flask-caching配置from flask_caching import Cachecache = Cache() # 缓存cache.init_app(app, conf
2020-12-07 19:05:41
1840
1
原创 flask-mail发送异步邮件
今天在做用户注册发送激活邮件时,看到邮件发送比较耗时,而且界面会卡在哪里,当时啪一下,马上就想到了使用多线程发送异步邮件,很快嗷。但是,实现了后运行发现什么运行在什么之外,什么应用上下文上下文,马上看了下官方文档http://www.pythondoc.com/flask/appcontext.html,吧啦吧啦的。下面完整代码,send_email.py,最关键的是应用上下文app.app_context()from flask_mail import Messagefrom exts impor
2020-12-02 18:20:28
364
1
原创 nginx配置访问http自动跳转https
自动跳转到https关键代码:rewrite ^(.*) https://$server_name$1 permanent;完整配置server{ listen 80; #填写绑定证书的域名 server_name www.byc.ink; #自动跳转到https rewrite ^(.*) https://$server_name$1 permanent; }server { #SSL 访问端口号为 443 listen
2020-11-27 11:56:33
869
原创 记录:mysql导入文件出现错误:ERROR at line 213: Unknown command ‘\‘‘.
解决办法:添加–default-character-set=utf8mysql -uroot -p --default-character-set=utf8 数据库名 < sql文件今天想把网站优化一下,然后把阿里云服务器上的数据库备份文件拷贝到了自己的win10下面,导入的时候出现了错误:ERROR at line 213: Unknown command ‘’’.,自己试了很多办法,网上说是字符集的问题,最后成功解决,记录一下,非常感谢:http://www.mamicode.com/
2020-11-08 18:31:12
290
原创 flask-wtf表单验证与pillow图形验证码
flask-wtf用来验证表单数据,pillow用来生成图片验证码1. 安装pip install flask-wtfpip install pillow编写在flask项目下创建form.py,表单验证类from flask_wtf import FlaskForm # 继承的父类from wtforms import StringField, PasswordField, DateField # 字段from wtforms.validators import DataRequi
2020-10-09 23:23:18
419
原创 flask使用缓存
这里使用redis跟flask-caching,可以参考文档:huanhttps://pythonhosted.org/Flask-Caching/使用redis做缓存主要是速度快,缓存一些不经常变化的但访问量大的页面,使用户体验更好。安装redis数据库pip install redispip install flask-caching在你的项目创建create_app函数下初始化缓存打开redis服务from flask_caching import Cache # 缓存cach
2020-10-08 14:55:37
841
原创 导入mysql文件报错:ERROR: ASCII ‘\0‘ appeared in the statement, but this is not allowed unless option --bin
在win10的PowellShell备份的sql文件在linux上导入都会报这个错误,改成在cmd下导出sql文件就行了,注意这个坑导出:mysqldump -u用户名 -p 数据库名 > 备份.sql导入:mysql -u用户名 -p 数据库名 < 备份.sql可以在PowellShell下远程拷贝文件到你的服务器打开PowellShell输入:文件:scp 备份.sql 远程用户名@远程ip: 远程目录/目录:scp -r 本地目录 远程用户名@
2020-10-07 14:09:47
4168
1
原创 flask使用七牛云存储图片并展示
注册七牛云,实名认证,点击对象存储,创建公开空间找到python SDK,在项目下创建一个util.py文件,粘贴下去util.py修改如下from qiniu import Auth, put_file, etag, put_dataimport qiniu.configimport randomimport datetimefrom werkzeug.utils import secure_filename # 生成安全的文件名def upload(filestorage): .
2020-10-05 16:50:56
389
1
原创 flask分页
flask分页使用paginate(), 返回一个分页对象,参数如下paginate(page=当前页, per_page=每页多少条, max_per_page=每页最大多少条)具体使用1、后端从数据库查询数据,在后面加上paginate函数,得到分页对象,返回前端渲染pagination = Article.query.order_by().paginate(page=p, per_page=2, max_per_page=20)return render_template('index.h
2020-10-04 15:31:40
387
原创 python中os.path.join()路径的注意点
今天在使用flask想要上传用户头像图片的时候,发现使用os.path.join()生成的路径用的是反斜杠,在浏览器一直显示不出来,后来才知道在linux下生存的路径是斜杠‘/’, 而在window下面生成的路径是反斜杠‘\’,建议还是转换为斜杠好点,因为浏览器不认识反斜杠。转换,使用replacep = 'user\aa\bb'path = p.replace('\\', '/')...
2020-09-28 20:08:50
1221
原创 python hashlib密码加密展示
python几种加密算法长度,在数据库创建表时,对比设置varchar的大小,常用sha256,不长不短import hashlibs = '1213520abcd'print('md5', hashlib.md5(s.encode('utf-8')).hexdigest())print('sha1', hashlib.sha1(s.encode('utf-8')).hexdigest())print('sha224', hashlib.sha224(s.encode('utf-8')).he
2020-08-29 12:15:39
189
原创 Flask蓝图的搭建
flask蓝图是为了把文件分开,让项目更清晰,便于维护,跟django的项目目录差不多蓝图项目结构如下展开settings.py是配置文件,所有的配置都在里面# 在这里自定义配置DEBUG = TrueENV = 'development' # 开发环境,生产环境:productionapps的__init__.py添加代码如下from flask import Flaskimport settings # 导入配置from apps.user.view import user
2020-08-26 15:45:21
273
原创 django网站部署流程
服务器买个服务器,在管理控制台里开启80端口443端口,我用的是阿里云,学生免费试用一年(白嫖)远程登录到服务器,用scp将本地项目上传到云服务器# win10的Powershell或者下载WinSCP软件scp -r 本地项目文件夹 用户名(root)@服务器公网ip:远程目录安装nginx、MySQL、python虚拟环境开启虚拟环境,安装需要用到的包,还有uwsgi包将项目debug改成False在项目根目录下新建uwsgi.ini文件,输入配置,uwsgi uwsgi.in
2020-08-26 10:15:58
370
1
原创 flask模板渲染,重定向
视图,具体请看注释render_template从模板文件夹中呈现给定的模板redirect重定向request请求对象url_for结合redirect用,反向解析url,在路由加上endpoint=‘index’学过django后再学这个感觉要飞起来了# 渲染模板引擎 重定向 请求对象 反向解析重定向from flask import Flask, render_template, redirect, reque
2020-08-25 20:11:58
580
1
原创 flask1.1.2基本骨架
模板文件夹,静态文件夹,虚拟环境(不是必须),剩下就是配置跟视图等文件app.py 是主要的运行程序from flask import Flaskimport settings # 导入自定义的配置文件app = Flask(__name__)app.config.from_object(settings) # 加载配置文件# print(app.config) # 打印配置文件# 路由@app.route("/")def index(): return 'hello
2020-08-24 16:28:42
621
原创 阿里云部署django邮件不能发送问题
今天在阿里云上部署我的博客网站时,测试中发现邮件不能发送成功邮件发送默认是25端口,而阿里云不开放25端口,需要改为465端口在django的settings文件邮件配置后面加上两句# 上线部署的时候使用EMAIL_PORT = 465 # 端口EMAIL_USE_SSL = True # ssl通常在465端口上,安全连接...
2020-08-16 16:10:27
308
原创 django2.2部署,uwsgi跟nginx都配置好了,运行发现还是没有加载静态文件
下面是我的配置,看第一行,把nginx改成root,不然没有权限# nginx改成root user root;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.ty
2020-08-15 17:01:59
178
原创 OSError: mysql_config not found
今天买了个阿里云的centos,安装python包时出现下面错误ERROR: Command errored out with exit status 1: command: /home/byc/blog/blog_env/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-eqlj8950/mysqlclient/setup.py'"'"'; __file__='"'"'/tm
2020-08-15 11:29:46
1862
原创 djagno2.2 解决debug=False后无法加载静态文件问题
settings配置STATIC_URL = '/static/'STATICFILES_DIRS = [os.path.join(BASE_DIR, '/static/'),]STATIC_ROOT = os.path.join(BASE_DIR, 'static')收集静态文件python manage.py collectstaticurls配置from django.conf.urls import urlfrom django.views import staticurl
2020-08-08 21:09:03
149
原创 django2.2配置富文本编辑器markdown,并渲染到前端
pip install django-mdeditor在INSTALLED_APPS设置中注册 INSTALLED_APPS = [ ... ' mdeditor ', ]settings配置MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads') MEDIA_URL = '/media/'根urls.pyurlpatterns = [ ... url(r'mdeditor/',.
2020-08-05 21:44:03
707
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人