pyhton flask 学习笔记

xiaoxiao2021-02-28  109

折腾了flask差不多有一个多月了,开始是先简单的学习了下pyhton的基础,之后就是跟着狗书整,学的时候很艰难,学完觉得自己就是弱智,好吧`这说明flask并不难。

————开始————

学习flask项目结构之前是单文件的运行。(那个文件我找不到了,删掉了吧)直接从项目结构的地方说下我踩到的坑。

在之前对flask有个简单粗暴的总结这里我就{{super}}下。

1.

SECRET_KEY

这个和csrf有关,给Cookie加上一个复杂的值,可以去看我的漏洞原理-csrf

 

2.

  SQLALCHEMY_COMMIT_ON_TEARDOWN = False

SQLALCHEMY_TRACK_MODIFICATIONS = False 主动提交至数据库,第一个好像不能用了。我这里使用了FALSE,所有后面要自己记得提交(db.session.commit())

 

3.

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:密码@localhost/数据库名字?charset=utf8'

狗书这里用的是sqlite,我也是从sqlite改过来的。

 

mysql 是之后我使用的数据库,pymysql 是把数据库和python连接起来,否则就会发现你在登入的时候,库里面有数据但是就是登入不了。

charset=utf8是用来防止乱码的,我还没有删除折腾过它,不知道具体会发生什么

3.1

记得在User类里面创建的password_hash么,我们自己在用shell创建的时候一定要记得关键字是password而不是password_hash,虽然password_hash也赋值地进去,但是打开我们的表(如何打开mysql之后会说)还会发现他没有加密,这样是不安全,generate_password_hash() 函 数生成散列值,check_password_hash() 函数和表中的散列值相比较。

4.表单

如果用 wtf.html 来渲染表单的话,我觉得不好看,不过做的过程中我还是用了,之后才转换过来。

 

{% block page_content %} <div class="login"> <h1>Login</h1> <form method="post" class="login-form"> {{ form.hidden_tag() }} //我删除它以后无法登入了, //模板参数将被替换为一个隐藏字段,用来是实现在配置中激活的 CSRF 保护。我不懂。。。之后再找 //在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。这个与html有关http://www.jb51.net/web/100210.html  <span>Name</span><br> {{ form.name.lable }}//这与后面的name括号里面要填写的id有关,这个也是属于html的知识,我后面没有添加id,所以删除没变化。 {{ form.name()}}<br> <span>Password</span><br> {{ form.password() }}<br><br> {{ form.remember_me }}<span>Keep me logged in</span><br> {{ form.submit(id="login-submit") }} </form> </div> {% endblock %}

改了之后flash没有效果了,打算自己之后再加javascript。

 

5.博客

current_user._get_current_object()这个是调用真正的用户,感觉这样找用户更正式一点?!我没有深入。

————————结束语————————

下一个阶段添加注册界面,添加个人资料界面只显示自己的博客,添加文章编辑器,添加评论。这个要过一段时间再开坑了。

万事开头难,现在也觉得还好了,用正确的姿势来搭建网站,虽然一度头疼,但是看着自己变得运用自如也觉得开心。

希望保持这种该边看书,边查资料,边找翻译,边修BUG的姿态,还有警惕让自己不要变成照着敲代码的人,学会改动源代码,知道为什么会是这样,到最后会运用了。

 

参考文章

http://blog.csdn.net/alter__/article/details/70544922   csrf

http://www.jb51.net/web/100210.html   hidden

http://www.cnblogs.com/zhangzhu/archive/2013/07/04/3172486.html  sql指令

转载请注明原文地址: https://www.6miu.com/read-43073.html

最新回复(0)