jq编译Python
❶ 前端与后端的数据交互(jquery ajax+python flask)
如果要给后端传递json数据,就需要增加content-type参数,告诉后端,传递过来的数据格式,并且需要将data转为字符串进行传递。实际上,服务如汪端接收到后,发现是json格式笑好,做的操作就是将字符串转为json对象。
另外,不转为字符串,即使加了content-type的参数,也默认会转成 name=xx&age=1,使后端无法获取正确的json
接收表单数据
接收Json数据
Flask可以非常方渣升仔便的返回json数据
看一下源码就可以知道,jsonify就是帮我们做了点添加mimetype这样的杂事,所以如果不嫌麻烦和难看,你也可以这样写
放两张截图来直观看一下请求
❷ 用python实现网页搜索功能
不知道你知道不知道AJAX,如果知道这个就容易弄了,用jq来POST数据,然后前面只用一个静太页就可以,点搜索就用ajax把搜索请求发过去,点修改就发修改请求
如果在一个页面要实现也可以在下面加一个隐藏的input用来定义是哪个功能,然后后台再根据这个功能名去判断如何处理
❸ python代码运行助手怎么打开
python代码运行助手是能在网页上运行python语言的工具。因为python的运行环境在很多教程里都是用dos的,黑乎乎的界面看的有点简陋,所以出了这python代码运行助手,作为ide。
实际上,python代码运行助手界面只能算及格分,如果要找ide,推荐使用jupyter。jupyter被集成到ANACONDA里,只要安装了anacoda就能使用了。
回到这个问题:
1、要打开这运行助手首先要下载一个learning.py,如果找不到可以复制如下代码另存为“learning.py”,编辑器用sublime、或者notepad++。
#!/usr/bin/envpython3
#-*-coding:utf-8-*-
r'''
learning.py
APython3tutorialfromhttp://www.liaoxuefeng.com
Usage:
python3learning.py
'''
importsys
defcheck_version():
v=sys.version_info
ifv.major==3andv.minor>=4:
returnTrue
print('Yourcurrentpythonis%d.%d.PleaseusePython3.4.'%(v.major,v.minor))
returnFalse
ifnotcheck_version():
exit(1)
importos,io,json,subprocess,tempfile
fromurllibimportparse
fromwsgiref.simple_serverimportmake_server
EXEC=sys.executable
PORT=39093
HOST='local.liaoxuefeng.com:%d'%PORT
TEMP=tempfile.mkdtemp(suffix='_py',prefix='learn_python_')
INDEX=0
defmain():
httpd=make_server('127.0.0.1',PORT,application)
print('ReadyforPythoncodeonport%d...'%PORT)
httpd.serve_forever()
defget_name():
globalINDEX
INDEX=INDEX+1
return'test_%d'%INDEX
defwrite_py(name,code):
fpath=os.path.join(TEMP,'%s.py'%name)
withopen(fpath,'w',encoding='utf-8')asf:
f.write(code)
print('Codewroteto:%s'%fpath)
returnfpath
defdecode(s):
try:
returns.decode('utf-8')
exceptUnicodeDecodeError:
returns.decode('gbk')
defapplication(environ,start_response):
host=environ.get('HTTP_HOST')
method=environ.get('REQUEST_METHOD')
path=environ.get('PATH_INFO')
ifmethod=='GET'andpath=='/':
start_response('200OK',[('Content-Type','text/html')])
return[b'<html><head><title>LearningPython</title></head><body><formmethod="post"action="/run"><textareaname="code"style="width:90%;height:600px"></textarea><p><buttontype="submit">Run</button></p></form></body></html>']
ifmethod=='GET'andpath=='/env':
start_response('200OK',[('Content-Type','text/html')])
L=[b'<html><head><title>ENV</title></head><body>']
fork,vinenviron.items():
p='<p>%s=%s'%(k,str(v))
L.append(p.encode('utf-8'))
L.append(b'</html>')
returnL
ifhost!=HOSTormethod!='POST'orpath!='/run'ornotenviron.get('CONTENT_TYPE','').lower().startswith('application/x-www-form-urlencoded'):
start_response('400BadRequest',[('Content-Type','application/json')])
return[b'{"error":"bad_request"}']
s=environ['wsgi.input'].read(int(environ['CONTENT_LENGTH']))
qs=parse.parse_qs(s.decode('utf-8'))
ifnot'code'inqs:
start_response('400BadRequest',[('Content-Type','application/json')])
return[b'{"error":"invalid_params"}']
name=qs['name'][0]if'name'inqselseget_name()
code=qs['code'][0]
headers=[('Content-Type','application/json')]
origin=environ.get('HTTP_ORIGIN','')
iforigin.find('.liaoxuefeng.com')==-1:
start_response('400BadRequest',[('Content-Type','application/json')])
return[b'{"error":"invalid_origin"}']
headers.append(('Access-Control-Allow-Origin',origin))
start_response('200OK',headers)
r=dict()
try:
fpath=write_py(name,code)
print('Execute:%s%s'%(EXEC,fpath))
r['output']=decode(subprocess.check_output([EXEC,fpath],stderr=subprocess.STDOUT,timeout=5))
exceptsubprocess.CalledProcessErrorase:
r=dict(error='Exception',output=decode(e.output))
exceptsubprocess.TimeoutExpiredase:
r=dict(error='Timeout',output='执行超时')
exceptsubprocess.CalledProcessErrorase:
r=dict(error='Error',output='执行错误')
print('Executedone.')
return[json.mps(r).encode('utf-8')]
if__name__=='__main__':
main()
2,再用一个记事本写如下的代码:
@echooff
pythonlearning.py
pause
另存为‘运行.bat’
3、把“运行.bat”和“learning.py”放到同一目录下,
❹ 在python3.3 Flask_bootstrap中 如何使用Jquery-DataTable表格插件
Flask_bootstrap就是模板引擎,你把Jquery-DataTable的样式及展示列表写到你Flask_bootstrap的基类模板中去就可以了呀,这就是个MVC
❺ 推荐 20 个堪称神器的命令行工具
优质文章,第一时间送达!
1.ag:比 grep、ack 更快的递归搜索文件内容。
2.tig:字符模式下交互查看 git 项目,可以替代 git 命令。
3.mycli:mysql 客户端,支持语法高亮和命令补全,效果类似 ipython,可以替代 mysql 命令。
4.jq: json 文件处理以及格式化显示,支持高亮,可以替换 python -m json.tool。
5.shellcheck:shell 脚本静态检查工具,能够识别语法错误以及不规范的写法。
6.yapf:Google 开发的 python 代码格式规范化工具,支持 pep8 以及 Google 代码风格。
7.mosh:基于 UDP 的终端连接,可以替代 ssh,连接更稳定,即使 IP 变了,也能自动重连。
8.fzf:命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端 ctrl-r 历史 命令搜索简直完美。
9.PathPicker(fpp):在命令行输出中自动识别目录和文件,支持交互式,配合 git 非常有用。
运行以下命令:
10.htop: 提供更美观、更方便的进程监控工具,替代 top 命令。
11.axel:多线程下载工具,下载文件时可以替代 curl、wget。
12.sz/rz:交互式文件传输,在多重跳板机下传输文件非常好用,不用一级一级传输。
13.cloc:代码统计工具,能够统计代码的空行数、注释行、编程语言。
14.ccache:高速 C/C++编译缓存工具,反复编译内核非常有用。使用起来也非常方便:
改成:
15.tmux:终端复用工具,替代 screen、nohup。
16.neovim: 替代 vim。
17.script/scriptreplay: 终端会话录制。
回放:
18.you-get: 非常强大的媒体下载工具,支持 youtube、google+、优酷、芒果 TV、腾讯视频、秒拍等视频下载。
还有 mac 专有的 pb/pbpaste:
把命令行输出拷贝到系统粘贴板:
把系统粘贴板内容拷到终端:
mac 下的 say 命令支持多种语言(英语、普通话、粤语)文本朗读,支持各种销魂恐怖的语气。跑这个命令感受下,小心被吓着了:
19.thefuck:用途是每次命令行打错了以后,打一句 fuck 就会自动更正命令。比如 apt-get 打成了 aptget。fuck 以后自动变成 apt-get。但还是没加 sudo。再 fuck,成功!
又比如 git branch 打成了 git brnch。fuck!更正成 git branch。
又比如 python 打成了 puthon。fuck!一秒变 python。
而且关键是每次打命令和内心 os 完全一致,有种人机合一的快感。fuck!
20.tldr: 如果你经常不想详读 man 文档,那么你应该试试这个小工具。
使用 $ man tar 时
使用 $ tldr tar 时