python启动多个进程_Python多进程运行两次进程?

运行下面的python3脚本,由于某种原因我无法理解startWebview函数执行了两次,结果打开了两个PyWebView窗口。

# Import Modules Here

import os

import time

import webview

import os.path

import multiprocessing

from dotenv import load_dotenv

from flask_wtf import FlaskForm

from flask_mde import Mde, MdeField

from wtforms import SubmitField, StringField

from wtforms.validators import InputRequired, DataRequired, Length

from flask import Flask, request, render_template, flash, session, url_for

app = Flask(__name__)

load_dotenv()

mde = Mde(app)

app.config['SECRET_KEY'] = os.environ.get("FLASK_SECRET_KEY")

windowTitle = os.environ.get("WINDOW_TITLE")

fileDirPath = os.environ.get("FILE_DIRECTORY")

def error_flasher(form):

for field, message_list in form.errors.items():

for message in message_list:

flash(form[field].label.text + ': ' + message, 'error')

print(message, message_list)

def fileHandler(form):

savePath = os.path.join(fileDirPath, form.title.data)

f = open(savePath, "w+")

f.write(form.editor.data)

f.close()

def contentLoader(form):

savePath = os.path.join(fileDirPath, form.title.data)

fileName = savePath

f = open(fileName, "r")

return f.read()

class MdeForm(FlaskForm):

title = StringField('Title', validators=[DataRequired()])

editor = MdeField(

validators=[

#InputRequired("Input required"),

Length(min=0, max=30000)

]

)

submit = SubmitField()

@app.route('/', methods=['GET', 'POST'])

def index():

form = MdeForm()

if form.validate_on_submit() and form.editor.data == "":

form.editor.data = contentLoader(form)

elif form.validate_on_submit() and form.editor.data != "":

session['editor'] = request.form['editor']

fileHandler(form)

form.title.data = ""

form.editor.data = ""

return render_template("index.html", form=form, windowTitle=windowTitle)

def startFlaskServer():

app.run(debug=True)

def startWebview():

webview.create_window(windowTitle, 'http://localhost:5000')

webview.start(debug=True)

if __name__ == "__main__":

p1 = multiprocessing.Process(target=startFlaskServer)

p2 = multiprocessing.Process(target=startWebview)

p1.start()

time.sleep(2)

p2.start()

p2.join()

p1.terminate()

21399c74988cfe4213c115dbaab038f8.png

提前谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值