在 Flask 应用程序中安装 Flask-Cors 扩展,以允许来自 Angular 客户端的跨域请求。使用以下命令进行安装:
pip install -U flask-cors
在 Flask 应用程序中创建 API 路由,用于接受 Angular 客户端发出的渲染 Flask 模板的请求。示例代码如下:
from flask_cors import cross_origin
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
@app.route('/api/render_template', methods=['POST'])
@cross_origin()
def render_flask_template():
template_name = request.json.get('template_name')
data = request.json.get('data')
rendered_template = render_template(template_name, **data)
return jsonify(rendered_template=rendered_template)
在 Angular 客户端中创建渲染 Flask 模板的服务,并使用 HttpClient 向 Flask API 路由发送请求,并返回渲染后的 Flask 模板。示例代码如下:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class RenderFlaskTemplateService {
private renderTemplateUrl = '/api/render_template';
constructor(private http: HttpClient) { }
renderTemplate(templateName: string, data: any): Observable {
const request = { template_name: templateName, data };
return this.http.post(this.renderTemplateUrl, request)
.pipe(map(response => response.rendered_template));
}
}
在 Angular 组件中调用渲染 Flask 模板的服务,并将渲染后的模板渲染到组件模板中。示例代码如下:
import { Component, OnInit } from '@angular/core';
import { RenderFlaskTemplateService } from './render-flask