栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

jobweb项目中所遇到知识点(Flask)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jobweb项目中所遇到知识点(Flask)

jobweb项目中所遇到知识点
  1. sqlalchemy . Customizing DDL

    数据定义语言(DDL)。发出时,将调用预定的操作顺序,并无条件创建DDL以创建每个表,包括所有约束和与其关联的其他对象。对于需要特定于数据库的DDL的更复杂的方案,SQLAlchemy提供了两种技术,可用于根据任何条件添加任何DDL,包括表的标准生成或单独添加。

    官方文档—>文档

  2. Flask扩展系列-用户会话管理

    • Flask-Login 模块

      • flask_login 是web开发框架flask的一个插件,可以非常方便的管理用户对网站的访问

      • user 类

      • # 安装 包
        pip3  install flask-login
        
        
        
        # 初始化 app
        from flask import Flask, render_template, redirect, request
        from flask_login import 
            (LoginManager,
             current_user,
             UserMixin,
             login_required,
             login_user,
             logout_user
             )
        
        app = Flask(__name__)
        app.config['SECRET_KEY'] = 'ijaswe'
        
        login_manager = LoginManager()
        login_manager.init_app(app)
        login_manager.login_view = '/login'
        login_manager.session_protection = 'strong'   # 防止恶意用户篡改 cookies
        
        
        # user 类
        
        user_dict = {}
        
        class User(UserMixin):
            def load_by_user_id(self, user_id):
                """
                在实际项目中,这个方法应该从数据库中根据user_id来查询用户信息
                为了演示方便,我这里省略了从数据库查询数据的过程
                如果数据库中没有user_id这个用户,你应该返回False
                :param user_id: 用户唯一标识
                :return: 
                """
                self.user_id = 1
                self.username = user_dict.get(self.user_id)
                return True
        
            def get_id(self):
                return self.user_id
        
    • login_required

      • @login_required 会做用户登录检测,如果没有登录要方法此视图函数,就被跳转到 login 接入点( endpoint )
      • current_user 是当前登录者,是 User 的实例,是 Flask-Login 提供全局变量( 类似于全局变量 g )
    • 使用 Flask-WTF

      • Flask表单:表单数据的验证与处理
      • 文档------》》》flask表单
    • Share() 基于jinja2模板创建社交共享组件

      • 文档
  3. Faker 类

    Python中有一个专门生成各类假数据的库:Faker

    使用faker 构建测试数据库

  4. CKEditor(app)

    是一个非常优秀的 Web 服文本编辑器,提供了非常多的功能和丰富的文档

  5. Moment(app)

    用于处理日期/时间的 Python 库,设计灵感同样是来源于 moment.js 和 requests

  6. get_or_404 方法

    比如:meth: ’ get ‘,但如果没有找到,就会以404终止,而不是返回’ ’ None ’ '。"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zS6xg1IM-1632910701211)( http://qny.jkraise.top/project%E7%9F%A5%E8%AF%86%E7%82%B9.assets/1603206304293.png~01style)]

  1. 解决 mysql5.7.5之后sql_mode默认值是"only_full_group_by",不能执行group_by查询

​ mysql 中sql_mode 设置win 10 , MYSQL8以上已经取消了 NO_AUTO_CREATE_USER,sql_mode中不能包含这 个。

​ 在mysql.ini 中设置

  1. 用户类 UserMinxin 类,

​ 文档—> UserMixin

  1. form enctype 属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MgnezZgk-1632910701213)( http://qny.jkraise.top/project%E7%9F%A5%E8%AF%86%E7%82%B9.assets/1603242615042.png~01style)]

  1. csrf 保护

    要对所有视图函数启用 CSRF 保护,你需要启用 CsrfProtect 模块:

from flask_wtf.csrf import CsrfProtect

CsrfProtect(app)
  1. @property 主要是让password字段无法直接读取

​ @password.setter 修改用户的password 字段 (修改密码)

  1. UploadSet

​ flask可以实现上传文件和下载文件的基本功能,但如果想要健壮的功能,使用flask_uploads插件是十分方便的。

UploadSet对象的主要方法是save,该方法必须传入werkzeug.FileStorage对象作为参数,然后检查文件名是否合法,将其转换;检查文件的扩展名是否允许,不允许抛出UploadNotAllowed()错误;调用resolve_conflict方法解决文件名冲突问题;然后将目录和文件名拼接成绝对路径保存在目录下,最后返回文件名; 
  1. patch_request_class

    • 限制文件大小

      导入patch_request_class()函数,传入应用实例和大小(默认为16MB),比如:

      patch_request_class(app, 32 * 1024 * 1024 ) 
      
  2. Flask abort 函数

    1. 用于提前退出 一个请求,并用指定的错误码 返回

      flask.abort(status, *args, **kwargs) 
      abort(404)
      
Bootstrap
  1. 用于响应式不局,移动设备优先的web 项目架构
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/280673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号