如何通過html來執行python腳本?

請教一個問題,如何通過html頁面獲取用戶輸入的字元串(例如:平凡的世界),來匹配到項目目錄下的文件,通過執行py腳本(腳本實現獲取用戶輸入的郵件名以及附件),發送郵件?

項目背景是希望建立一個自由的kindle圖書發送系統。(建立書庫,匹配書友搜索的書籍,然後發送到他的郵箱)

項目環境是:ubuntu16.04.3LTS+python3.5+django1.10.1+uwsgi


寫過類似的

按照你的需求,一個是要做個書籍搜索引擎,這簡單,自己建好書籍的資料庫,用 django 的orm,根據關鍵字模糊查找,前端隨便用個非同步的庫,發請求非同步與後台交互,搜索資料庫,讓用戶選擇匹配結果就好了。

第二就是郵件發送,這個更簡單,弄個郵箱輸入框,點提交時把書籍信息,郵箱發送到後台,後台發郵件就好了。

對了,我當時前端用的是Vue,題主可以試著用用。


可以這樣理解你的系統:

1. 前端(用戶端)(html, css, javascript)職責:

1)呈現用戶界面

2)接受用戶的參數(郵箱)

3)向後端(服務端)(Python及相應框架)發送請求

2. 後端(此時是在伺服器上)職責:

1)接收到請求,調用服務端的業務邏輯代碼,包括但不限於本地文件讀取,可能的邏輯處理和請求的返回等

--------------

看了題主的提問方式,感覺好像題主對web這一套不太熟悉?

從具體的實現上來看,之前的答主已經覆蓋了一部分了,我覺得題主可以著重了解一下,前端的html(或者js)怎麼發送請求到後端,然後是後端怎麼收到請求(這部分可以直接看框架Django的文檔,或者直接百度google都行),最後是了解後端怎麼把處理好的結果返回客戶端。

題主可以先寫個小demo,如前端按一下按鈕,後端收到的話就在後端列印一下,然後給前端返回個東西,一旦這個流程跑通了,那麼再把題主的相應的業務邏輯放進去就行了,如前端發送書名和郵箱到後端,後端解析參數,然後拿著書名去查找本地文件,查到後把相應的文件發送到指定的郵箱。

然後建議答主具體的實現細節可以上google或者百度搜

參考關鍵詞:

1. Python 發送郵件(或者 Django發送郵件 附件)

2. Django 接收請求

3. Django 解析參數

4. Python 文件讀取

另外如果你有美化用戶界面的需求,那麼還建議了解:

5. Javascript css html

6. Bootstrap (一個快速上手,很美觀的前端組件庫)


這個問題很好辦

1、在模版中寫一個表單form, 表單action 中填寫路徑。

2、根據表單action中的路徑,通過urls 路由映射到視圖views。

3、在views 中得到post 數據,調用在其它地方設計的mail()函數,發送郵件。


這個需求很簡單了。

功能是 根據用戶的請求找到資源,然後發送郵件。

用戶請求很好拿啊,django的urls.py直接路由到views.py下,

然後找到資源,本地就直接檢查,遠程就獲取,

發送郵件,簡單的發郵件用email這個模塊就可以做了,發到kindle倒是沒實現過。


wooey,為Python腳本生成網頁的,不知道這個是不是符合需求


python爬蟲 模擬登陸知乎 推送知乎文章到kindle電子書 獲取自己的關注問題

這是一個比較類似的項目,和你的需求也差不多。只要分解為

1接收消息

2查找書籍

3發送郵件

這三個步驟,其中接收消息如果用Django也可以不過比較麻煩有點大型,可以考慮微信介面;

查找的話最好有一個資料庫系統,發送郵件也不算難。哈哈不過這個項目還是很有實踐意義的~


django, flask報錯的debug都帶這個功能,可以研究一下。具體怎麼實現也沒研究過,但這個極其不安全。最好還是前台url提交,後台參數過濾處理。

---------------------

既然腳本是py實現的了那麼就可以模塊調用了。

文件匹配也好處理

for root,dir,file in os.walk("目錄"):
do...(re匹配file)
if 匹配:
mail(user)
break


參考notebook調用魔法函數還是啥的%run


推薦閱讀:

據說Python中tuple的速度比list快,如果tuple中包含有list元素,tuple是如何保持比list快的?
怎麼解決Python3亂碼問題?
Python3.5.1(64位)安裝beautifulsoup4.4.1不成功怎麼回事?
Python3網頁抓取Non-BMP character not supported in Tk怎麼解決?
python3下,re.findall返回值前後的[" 『]怎麼去掉?

TAG:Python | Django框架 | Python3x | KindlePaperwhite3 |