python+flask+html/css+mysql+BAE 打造CSDN簡曆自動產生系統(附網站完全源碼),flaskcsdn

來源:互聯網
上載者:User

python+flask+html/css+mysql+BAE 打造CSDN簡曆自動產生系統(附網站完全源碼),flaskcsdn
1.背景
       一直想自己動手寫個web app玩玩,前幾天看了一個github的resume自動產生的web-app,所以就動手仿造了一個csdn的簡曆產生器。結構很簡單,前端是html/css檔案(這個模仿了github的那個網頁,因為博主不太懂前端)。後台是一個爬蟲軟體,可以把csdn的個人資訊爬下來,然後顯示出來,最後部署到了百度雲。百度的雲資料庫,真是坑爹.......,我調試了半天,目前還無法insert資料。好了,先上個圖,項目地址http://resumecsdn.duapp.com/。
                         (1)起始頁面

                       (2)產生的簡曆

2.項目介紹       (1)前端
       前端主要就是html和css,這個我是參考別人的改的,有過代碼經曆的人應該都比較容易。前端和背景互動,主要是通過先在html裡設定method,然後就可以{{{data}}這樣傳輸資料了,這個比較容易,大家在代碼中一看就明白,不多說了。
     (2)flask
        flask是一個比較輕便的python web架構,博主本來打算用豆瓣那個的(豆瓣的後台是python寫的),但是發現太難,所以轉而用flask。flask的好處是很直接明了。

@app.route('/')def home():   #mysql_manager.sql_connect()       return render_template('index.html')@app.route('/signup', methods=['POST'])def signup():    #session['username'] = request.form['username']    session['message'] = request.form['message']    return redirect(url_for('message'))
       像這樣,利用app.route就可以直接獲得網頁路徑,render_template('index.html')就是開啟index頁面。它的檔案結構可以給大家看下,所有的html都是存放在template檔案夾,然後css這些設定檔還有資料庫可以放到static檔案夾。
     這個架構的好處是,基本看一眼例子就可以動手開搞了,推薦一個網站:http://maximebf.com/blog/2012/10/building-websites-in-python-with-flask/

    (3)crawler         介紹一下crawler檔案,也就是背景爬蟲檔案吧。因為要偽裝成是瀏覽器瀏覽,所以加了個head,這樣可以避免一些反爬蟲網站。剩下就是用urllib的函數加上正則匹配就比較容易搞定了。
headers = {      'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'       }     req = urllib2.Request(      url='http://blog.csdn.net/'+name,      headers = headers      )  

      (4)部署到BAE
        BAE怎麼說呢,mysql功能文檔很少,這點讓我很不爽。但是其他功能還是可以的,特別是支援很多python的第三方庫,可以在requirements.txt裡面定義。       用法:註冊一個帳號,然後它會給你一個git地址,clone到本地。然後就可以修改了,當然,改好了還得push上去,每次修改都得點擊“快捷發布”。


下面是一些要注意的地方:
1.首先是app.conf,url要加星號。
handlers:  - url : /.*    script: __init__.py


2.然後,把需要的第三方庫加在requirements.txt裡,這樣bae會自動幫你安好。
flaskMySQL-python


3.注意本地調試,和放到BAE的區別
本地調試運行程式是以下語句__init__.py檔案內,然後就可以在瀏覽器查看了
if __name__ == '__main__':     app.run()


放到BAE上要把本地調試的語句注釋掉,在__init__.py裡加上:
from bae.core.wsgi import WSGIApplication  application = WSGIApplication(app)  


4.本地調試每次調完要注意kill線程,方法是在shell裡:
lsof -i:5000

然後在kill掉對應的ID號

       --------------------------------------------------------------------------------------------------------------------------------------------------------              差不多這些就夠了,大家想更深的瞭解可以去項目看 github地址   項目示範地址           麻煩大家看的時候,給個star,擁有star100+項目一直是我的夢想


/********************************

* 本文來自部落格  “李博Garvin“

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

******************************************/






相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.