我的總結:css
這一個學期在管理信息系統這門課上被老師領進門學習了目前比較受歡迎的編程語言Python,相比起Java仍是C語言等流行的編程語言,再結合本身對python語言的一學期的短淺學習,總結python的優點以下大體能夠歸爲如下幾個要點:html
1. Python做爲動態語言更適合初學編程者。Python可讓初學者把精力集中在編程對象和思惟方法上,而不用去擔憂語法、類型等等外在因素。的確,好比咱們在利用python在mysql數據庫中建立數據表的時候,它建立數據表而且進行外鍵鏈接的語句特別地清晰簡潔,這不由的讓我爲之感嘆python語言的簡潔之處,也難怪其很是地適合初學Python語言的編程者。前端
2. Python有一些Java沒有的強大的架構和第三方庫,能夠表達很是複雜的邏輯。本學期咱們除了利用python進行管理信息系統的建立以外,還利用python進行網絡爬蟲學習的學習與實際操做,爬蟲須要用到一些第三方庫,而Python是開源的,所以它有許多豐富的第三方庫可供編程者使用。不得不說這是一個很是大的優勢,這使得咱們能夠用Python語言實現更多豐富多彩的功能。python
不過相比Java,Python也有缺點,缺點大概是因爲Python是動態語言,執行效率比Java低下。python是弱類型語言,雖然咱們寫代碼的時候能夠不聲明變量的類型,可是它在編譯的時候是要先自動check 類型的,可是對於咱們目前所做的簡單管理系統來講,這種效率低下的缺點並非特別地明顯。mysql
本學期在老師的仔細指導下進行的模仿「簡書」網站的管理信息系統的實現,讓我有了一次很是寶貴的搭建一個管理信息系統的實際操做經驗。這種從編程語言都由零開始的學習讓我可以以一種較爲清晰直觀的角度去了解一個管理信息系統的實現過程,理解如何在製做一個基本框架的前提上再繼續迭代增長相應的功能。程序員
在實現簡單信息管理系統的過程中,我實際參考更多的是豆瓣網的豆瓣電影界面而不是簡書網站界面。而且在html界面所使用的一切css樣式都是本身經過各類渠道學習了相關知識以後再獨自編寫完成的,並非去網上找一些相似於bootstrap的別人已經編寫完成的模板,這樣子當然沒法與bootstrap所提供的漂亮樣式相媲美,可是這樣子鍛鍊了我如何獨立完成css樣式的能力,也讓我學習了應該如何控制各類html元素的邊界大小、尺寸等內容,本身在這個編寫css樣式的過程中收穫了不少知識和經驗。除了獨立實現網頁的視覺效果以外,在老師指導下一步一步實現各種功能的過程當中,我也學習到了要如何利用python去實現咱們這個簡易的管理信息系統,這對於我將來進行更加詳細複雜的管理信息系統有巨大的幫助。web
整體來講,本身在這一學期的Python編程學習中受益不淺,而Python目前的發展也是很是不錯。不管是人均面邀數仍是平均年薪,Python工程師都排在較高的位置上。對於不一樣規模的企業來講,除了未融資和不須要融資的企業,Python程序員的薪資呈企業規模越大薪資越高的趨勢,另外各個城市的互聯網公司也開始紛紛招聘Python工程師。在這裏也但願本身可以在將來繼續努力學習Python編程的路上取得好成績,爭取讓本身的能力可以更上一層樓。sql
總結Python+Flask+MysqL的web建設技術過程:數據庫
1.利用PyCharm建立一個Flask以後,咱們就開始着手建立python文件,首先一個以網頁展現做爲前端的管理信息系統須要作到前端與後端Mysql數據庫之間的交互,則確定須要進行鏈接數據庫的操做,此處咱們建立了名爲config的數據庫鏈接配置的py文件實現與Mysql數據庫之間的鏈接。編程
config的重要代碼爲:
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@localhost:3306/lalaland?charset=utf8' SQLALCHEMY_TRACK_MODIFICATIONS = False
2.在實現與數據庫之間的鏈接以後,咱們就能夠建立py文件開始建立數據表,重要代碼以下:
user表裏存放用戶的id,用戶名跟密碼。
question表裏存放用戶的id、title(標題)、detail(詳情)、create_time(建立時間)、author_id(建立這篇文章的用戶id)。
comment表裏存放id、author_id(評論用戶的id)、question_id(文章的id)、create_time(建立時間)和detail(詳情)。
3.建立完數據表以後咱們即可以着手開始管理信息系統的前端網頁設計,如下是我這次建立完成的全部模版,detail是每一篇影評的詳情界面模版,index爲首頁,login爲登陸界面,register爲註冊界面,user界面爲用戶我的中心模版,userCenter一、二、3分別爲用戶我的中心的三個子選項模板,對應的是用戶文章總數,用戶評論總數,跟用戶的我的資料。
4.在登陸以及註冊界面,利用了js函數對相應的輸入框進行判斷,若是輸入的值不合法,會彈出對應的警告,而且沒法進行註冊和登陸操做。下圖爲登陸界面對用戶名和密碼的驗證:
5.在主py文件(practiceForConnect)裏面,實現對各個網頁模板的跳轉,此處是設置首頁(index)的跳轉,在index的前端界面中利用了for循環將questions這個參數進行循環遍歷,實現查看每一篇影評的效果。@app.route的做用是設置訪問路徑。
網頁效果如圖:
6.此處是設置註冊模板的跳轉。註冊模板html中在表單form區域利用method聲明post方式傳送數據,在py文件裏把密碼加密以後再存入數據庫。
網頁效果如圖:
7.此處是設置登陸模板的跳轉。當用戶名與密碼都驗證正確時才能夠進行發表影評、發表評論以及查看其餘用戶的我的中心的操做。
登陸界面效果以下圖:
8.在其餘須要預先登陸纔可以實現的操做的函數以前生命@loginFirst以後,就可以在相應操做以前先將頁面跳轉到登陸界面,此步驟操做函數以下圖所示:
9.此處是發佈影評的操做,在前端界面輸入標題和詳情內容以後,點擊發布即可以發佈影評,而且將頁面跳轉到首頁,而且可以在首頁看到剛剛發佈的影評。
10.實現每一篇影評的評論功能,當點擊某一篇影評的標題的時候,能夠進入這一篇影評的的詳情頁面,在這個頁面中能夠進行評論功能的實現。具體函數以下圖所示:
11.detail界面是影評的具體詳情界面,在此處能夠進行用戶評論操做。
網頁效果如圖:
12.該部分函數操做對應着用戶我的中心的跳轉,python代碼以下圖:
網頁效果如圖:我的中心界面默認先進入「所有文章」這個界面,當點擊「所有評論」或者「我的資料」時能夠跳轉到對應的界面。
13.此處實現了組合搜索功能,在輸入框中輸入關鍵字以後點擊搜索即可以查看文章標題或者詳情內容中包含該關鍵字的文章,代碼如圖:
網頁效果如圖:
14.在導航欄的右側顯示用戶的登陸名顯示,此處經過調用Login函數驗證成功以後返回的session值來顯示用戶名,並將此處與該登陸用戶的我的中心鏈接起來,實現了一點擊用戶名便跳轉到對應的我的中心界面的功能,登陸以後還能夠註銷。
註銷操做的代碼以下:
15.如何將後端數據庫的值返回到前端頁面上來呢?
其實實現前端網頁值的顯示,只須要在對應的html頁面利用好Py文件中傳遞過來的參數便可。
上圖是首頁遍歷每一篇影評的html源碼,此處利用了從Py文件中傳遞過來的questions這個字典變量,由於這個變量已經包含了全部的影評,而且將這個變量進行for循環遍歷即可以遍歷questions這個字典裏面的每個值,這樣就實現了在前端網頁上值的顯示。在其他的detail模板(影評詳情頁)、userCenter模板(我的中心頁)也是經過這種方法來遍歷顯示相關的信息。
16.頁面元素的美化佈置實現。
html界面上的各類元素好比導航欄的佈局,底部導航欄的佈置等都是分別經過CSS樣式文件來實現佈局效果。
17.子模板繼承父模板。因爲導航欄和背景等元素是幾個模板中共同擁有的,爲了代碼簡潔,此處將index頁設置爲父模板,在父模板中設置block語句塊,在子模板經過extends繼承父模板以後,便可在相應的block語句塊中實現子模板須要實現的頁面效果。下圖展現的就是登陸界面繼承index首頁這個父模板並在相應的block語句塊中實現自身功能的示例html源碼。