中間乙個禮拜沒有看過flask了,今天重新撿起來,一切又開始陌生了。強迫自己看下去,也算是有了收穫。
以前大概到這裡就開始沒有怎麼實際寫過**了,其實看書,和實際寫**還真是差的很遠。
剛看了沒多久,由於自己現在是自己手敲,所以走了一些彎路,但這些彎路其實對於成長來說,還真是很有用的。
這裡我舉個剛剛遇到的例子。
不知道為什麼好像上傳的服務出問題了
命令列還不能複製,蛋疼的很,我還是口述吧。
from flask import
flask, render_template
from flask import
request
#from flask_script import manager
from flask_bootstrap import
bootstrap
from flask_moment import
moment
from datetime import
datetime
from flask_wtf import
form
from wtforms import
stringfield, submitfield
from wtforms.validators import
required
class
nameform(form):
name = stringfield("
你是什麼名字?
", validators=[required()])
submit = submitfield("提交"
))"secret_key
"] = "
my_flasky
"form =nameform()#"
/")def
index():
return render_template("
index.html
", current_time =datetime.now())
"/user/")
defuser(name):
return render_template("
user.html
", name =name)
defpage_not_found(e):
return render_template('
404.html
defpage_not_found(e):
return render_template('
500.html
"/test
", methods=['
get', '
post'])
deftest(form):
return render_template("
test.html
", form =form)
if__name__ == "
__main__":
上述**執行,會出現乙個莫名報錯。報錯內容是和上下文有關係的。說實話,到現在這個階段,我是不太理解上下文的。
但是後面一想,結合到狗書中的**我想到了乙個問題,我例項化form出問題了。
我不能在全域性裡面例項化他,而應該是檢視函式裡面例項化他。這樣我才能拿到上下文。
所以後面改成這樣了。
from flask import
flask, render_template
from flask import
request
#from flask_script import manager
from flask_bootstrap import
bootstrap
from flask_moment import
moment
from datetime import
datetime
from flask_wtf import
form
from wtforms import
stringfield, submitfield
from wtforms.validators import
required
class
nameform(form):
name = stringfield("
你是什麼名字?
", validators=[required()])
submit = submitfield("提交"
))"secret_key
"] = "
my_flasky"#
"/")
defindex():
return render_template("
index.html
", current_time =datetime.now())
"/user/")
defuser(name):
return render_template("
user.html
", name =name)
defpage_not_found(e):
return render_template('
404.html
defpage_not_found(e):
return render_template('
500.html
"/test
", methods=['
get', '
post'])
deftest():
form =nameform()
return render_template("
test.html
", form =form)
if__name__ == "
__main__":
**正常,雖說沒什麼技術含量,但是這可能對上下文的理解有幫助,我就發上來了。
另外,再補充一句,我和狗書上不同的是,我是用了單獨乙個test函式來測試的,我覺得這樣的方法還不錯,先在test裡面驗證是否ok,再去改實際的函式。
修飾的路由函式,其實可以去掉關鍵字引數methods也能正常執行,只不過可能提交表單會出問題,還沒測試,待大家來驗證吧!
重新撿起flask(七)
來到資料庫一章,我的心還是很矇的。雖說自己之前sql寫的666,但是你讓我建模我還真沒幹過啊!然後狗書裡用的還是sqlalchemy,用物件導向來理解資料庫,我選擇godie,我知道為什麼叫狗書了.開玩笑啦。不過說實話,是有些懵。因為你在這個框架裡呆的時間還很短,什麼都不知道,你不知道這個框架為你做...
重新撿起flask(六)
其實到這裡來說,我發現狗書一些沒太講清楚的事情了,當然看著之前的筆記,其實我也知道自己以前也發現了一些問題。由於我們大部分都是在用拓展包,其實拓展包為我們做了一些什麼事情其實我是完全不知道的。比如現在我們重點來看一下我們test函式。test methods get post deftest for...
重新撿起flask(五)
又想蹭點東西了.這裡主要是想來複習一下jinja2模板的一些內容。之前其實很快的過了jinja2裡面寫一些if或for控制語句的東西。真到現在想直接寫一些,卻有些忘了,如果你也忘了,我們一起來回憶一些吧。ouch 上面是默寫的,也不知道是不是對的。我仿著思路再寫一下for的吧。不記得有沒有while...