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
******************************************/