我的總結html
通過一個學期以來,自我感受有了很大的進步,在必定程度上可以掌握理解老師上課所講的內容而且可以順利的在本身的電腦上操做;在這個本身動手的實踐操做中意識到我還存在不少的不足,如課後做業以及一些操做會很依賴上課的截圖,可是之後會增強動手實踐的能力,鞏固我對python語言的掌握;我我的把這學期所學的東西分爲三大部分:前期對Python的基礎語法練習,中期動手製做網頁,後期Flask項目主程序和數據庫的鏈接;前端
在期末我對我本學期所學的知識進行了一次簡單的梳理,梳理的內容以下:python
前期Python基礎語法練習web
中期的基礎網頁製做正則表達式
後期的Flask項目主程序和數據庫的鏈接數據庫
JavaScript是一門基於原型、函數先行的語言,是一門多範式的語言,它支持面向對象編程,命令式編程,以及函數式編程。它提供語法來操控文本、數組、日期以及正則表達式等,不支持I/O,好比網絡、存儲和圖形等,但這些均可以由它的宿主環境提供支持。編程
JavaScript雖與Java有不少類似性,但這兩門編程語言從設計之初就有很大的不一樣,JavaScript的語言設計主要受到了Self(一種基於原型的編程語言)和Scheme(一門函數式編程語言)的影響。在語法結構上它又與C語言有不少類似(例如if條件語句、while循環、switch語句、do-while循環等)數組
function fozhuce() { var oUname = document.getElementById("uname"); var oError = document.getElementById("error_box"); var oUpass = document.getElementById("upass"); var oUpass1 = document.getElementById("upass1"); var isError = true; oError.innerHTML = "<br>"; if (oUname.value.length < 6 || oUname.value.length > 20) { oError.innerHTML = "用戶名要6-20位"; isError = false; return isError; }else if(oUname.value.charCodeAt(0)>=48 &&(oUname.value.charCodeAt(0)<=57)){ oError.innerHTML="首位不能爲數字"; isError = false; return isError; }else for (var i=0;i<oUname.value.length;i++){ if((oUname.value.charCodeAt(i)<48)||(oUname.value.charCodeAt(i)>57)&&(oUname.value.charCodeAt(i)<58)&&(oUname.value.charCodeAt(i)>97)){ oError.innerHTML="只能爲數字和字母"; isError = false; return isError; } }if (oUpass.value.length < 6 || oUpass.value.length > 20) { oError.innerHTML = "密碼要6-20位"; isError = false; return isError; }else if(oUpass.value!=oUpass1.value) { oError.innerHTML = "設置密碼和驗證密碼不一致"; isError = false; return isError; } return ture; }
可是是用post仍是get方法呢,我剛剛接觸到這個我也老是分不清該用哪種方法,接下來說一下我查閱資料而發現的規律: 瀏覽器
其實我本身是用了一種很通俗的理解,若是關係到數據的更改的話就採用post,沒有涉及到數據的更改就採用get;雖然這種通俗存在很大的片面,可是自我感受對新手菜鳥級的來講仍是能夠嘗試的;安全
@app.route('/denglu/', methods=['GET', 'POST'])
def denglu():
if request.method == 'GET':
return render_template('denglu.html')
else:
username = request.form.get('username')
password = request.form.get('password')
user = User.query.filter(User.username == username).first()
# 判斷用戶名是否存在
if user:
if user.check_password(password):
session['user'] = username
session['id'] = user.id
session.permanent = True
return redirect(url_for('shouye'))
else:
return '密碼錯誤'
else:
return '此用戶不存在'
5.完成了登陸功能,用session記住用戶名,讀取表單數據查詢數據庫判斷用戶密碼,導入session,設置secret_key,操做字典同樣操做`session`:增長用戶名session['username']=username,在這裏我想談談session,一開寫註冊與登陸功能的時候,以下圖:
user = User(username=username, password=password)
db.session.add(user)
db.session.commit()
return redirect(url_for('denglu'))
對session有了一個只是把數據記錄寫到數據庫的片面理解,但是後來我把登陸功能寫好後也遲遲沒有深入的理解session究竟是什麼含義,在這一點上能夠看得出我對學習仍是很被動;在完善期末做品當中我發現了不少不足,雖然做品完成了可是對於知識點仍是有不少的缺失,就如session,它的工做原理以下:
當一個session第一次被啓用時,一個惟一的標識被存儲於本地的cookie中。
隨着愈來愈多用戶登陸,Session 所須要的服務器內存量也會不斷增長。訪問 Web應用程序的每一個用戶都生成一個單獨的 Session 對象。每一個 Session 對象的持續時間是用戶訪問的時間加上不活動的時間。若是每一個 Session 中保持許多對象,而且許多用戶同時使用 Web應用程序(建立許多 Session),則用於 Session 持久性的服務器內存量可能會很大,從而影響了可伸縮性。
Session 是存儲在服務器端的,遠程用戶沒辦法修改 session 文件的內容,所以咱們能夠單純存儲一個 $admin變量來判斷是否登錄,首次驗證經過後設置 $admin 值爲 true,之後判斷該值是否爲 true,假如不是,轉入登錄界面,這樣就能夠減小不少數據庫操做了。並且能夠減小每次爲了驗證 Cookie 而傳遞密碼的不安全性了(session 驗證只須要傳遞一次,假如你沒有使用 SSL 安全協議的話)。即便密碼進行了 md5 加密,也是很容易被截獲的。
6.製做首頁的顯示列表,並在首頁列表所有問答,將數據庫查詢結果傳遞到前端頁面 Question.query.all(),前端頁面循環整個列表,完成發佈詳情頁的頁面佈局,對展現在列表的東西進行搜索;其實對於搜索,還有不少東西不瞭解,如怎麼進行對數據高級搜索,例如像博客園的搜索一個月的,一個星期的等等,這些都是值得我進行深入摸索學習的;
以上的幾點是我對我本學期所學到知識進行梳理,在這個過程當中也遇到過不少問題,一些看起來不覺得然的問題也會形成系統出現不少錯誤,須要咱們仔細耐心對待,如在命令行建立新的數據庫:create database reader;這樣看彷佛沒有錯誤,可是在添加文字時就會出現報錯;這是因爲一些編碼的緣由,當初我就由於創建數據庫時沒讓它是utf8編碼致使添加文字頻頻報錯,因此建數據庫是寫的應該是:create database reader charset utf8;這個小失誤讓我浪費了不少時間在檢查上,在學習編碼的路上必定要當心謹慎,細緻纔會提升效率走得更遠;還有一些配置問題如在配置當中已經在設置配置好的project Interpreten,但是仍是會報錯,就應該學會在workspace中找到一些相關的配置問題進行手動添加,報錯信息和配置截圖如圖所示:
在個人學習生涯中接觸到的第一母語Java,可是我對Java彷佛有一種與生俱來恐懼感,到至今我仍然會以爲它很難,是python改變了我對代碼很難學的很難理解的見解,相對於Java的 高冷拒人千里以外,python語言算得學習門檻低得感人了,感受是任何人是隻要想學習,能夠在幾天裏學會不少基礎知識,如上面我所梳理到的使用Turtle庫的進行繪畫,對一些字符串進行操做,對字符串的基礎操做,處理;如:輸入身份證號,識別地區、年齡、性別等;可是也不能所以由於python好學而對它掉以輕心,全部的事情都有一個厚積薄發的過程,多動手實踐很重要,代碼若是不常常練習就會很生疏,就好像開學老師說的一些時間類型,Datetime處理時間和日期,能夠獲取datetime以及將datetime類型轉換成字符串,將字符型轉換成datetime類型,對那些類型每次都得找一些記錄纔會想起來,因此必定要常常實踐;
其實在大學這有限的時間裏老師可以傳授的知識是頗有限,想要學好一門技術,只是掌握老師上課所說的知識是遠遠不夠的,要讓自已有很強的 自主學習能力;在前不久據說了一條新聞,在山東的一些小學裏,python已經寫進書本了,連小學生都學習python了,咱們做爲一名大學生更應該付出更多的努力去學習python,我也會對此付諸於行動證實;