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 時