分类标签归档:Flask开发

[ Flask基础面试题目 ]


Django 和 SQLAlchemy 之间比较

1. Django

django的orm是活动记录的方式来实现的, 数据库中的每行数据都直接隐射到代码对象中

2. sqlalchemy

SQLAlcyhemy 是数据映射实现,数据库结构和对象结构之间存在间隙,必须使用另外的持久层来保持与数据库的交互(例如保存对象),不会捆绑并强迫严格遵照活动记录来考量。适用于复杂的查询。

总结

Django 适用于所有常规 CRUD 操作。会自动生成主键,会自动提交等。Django Model 更简洁一些。例如对于类关联,Django 只要直接声明外键,就自动产生关联对象,而 SQLAlcyhemy

< Read more >

[ Flask配置跨域 ]


使用添加请求头的方法实现

在每次响应的时候, 添加响应头, 配置实现

from flask import Flask, views, jsonify, make_response
from flask_wtf.csrf import generate_csrf

app = Flask(__name__)

# 基础跨域使用请求头实现

class TestView(views.MethodView):
    def get(self):
        data = jsonify({
            "code": 200,
            &qu

< Read more >

[ Flask初始化配置 ]


extensions文件

数据库init

from flask_sqlalchemy import SQLAlchemy
from flask_sqlalchemy.query import Query # baseQuery
from flask_marshmallow import Marshmallow
from flask_migrate import Migrate
from flask import Flask
import click

db = SQLAlchemy()
ma = Marshmallow()
migrate = Migrate()

def init_datab

< Read more >

[ Flask用户user模型 ]


from flask_login import UserMixin
from werkzeug.security import generate_password_hash, check_password_hash
from ..extensions import db
import datetime

class User(db.Model, UserMixin):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment=&#

< Read more >

[ Flask-form自定义json校验 ]


# coding=utf-8
from flask import request, jsonify, abort
from wtforms import Form
from ...models import User
from ...extensions import db
from ...common.utils.jwt_token import jwt_filter_user
from typing import Literal
from ...common.exception import error_response
# request data 基础验证器


class Reque

< Read more >

[ Flask自定义jwt_token ]


import jwt
import datetime
from flask import request, g
from .http import fail_response
from flask import has_request_context
from functools import wraps
from ...models import User
import re
from typing import Union


JWT_CONFIG: dict[str, Union[str, datetime.timedelta]] = {
    'ACCESS_TIMEOUT&

< Read more >