重新撿起flask(四)

2022-08-03 08:45:12 字數 3086 閱讀 1783

中間乙個禮拜沒有看過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...