下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:8871
这个合同生成器系统使用Flask框架构建,包含完整的Web界面和文档处理功能。系统支持多种合同模板,用户只需填写表单即可生成专业Word格式合同文档。使用时需要预先准备合同模板文件并放入templates目录。
from flask import Flask, render_template, request, send_file
from docx import Document
from datetime import datetime
import os
app = Flask(__name__)
UPLOAD_FOLDER = 'templates'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
class ContractGenerator:
def __init__(self):
self.templates = {
'employment': 'employment_contract.docx',
'nda': 'nda_agreement.docx',
'service': 'service_contract.docx'
}
def generate_contract(self, template_type, variables):
doc = Document(os.path.join(app.config['UPLOAD_FOLDER'],
self.templates[template_type]))
for paragraph in doc.paragraphs:
for key, value in variables.items():
if key in paragraph.text:
paragraph.text = paragraph.text.replace(f'[{key}]', str(value))
output_path = f"generated_contract_{datetime.now().strftime('%Y%m%d%H%M%S')}.docx"
doc.save(output_path)
return output_path
@app.route('/')
def index():
return render_template('index.html')
@app.route('/generate', methods=['POST'])
def generate():
contract_type = request.form['contract_type']
variables = {
'PARTY_A': request.form['party_a'],
'PARTY_B': request.form['party_b'],
'EFFECTIVE_DATE': request.form['effective_date'],
'TERM': request.form['term'],
'SIGNATURE_A': request.form['signature_a'],
'SIGNATURE_B': request.form['signature_b']
}
generator = ContractGenerator()
output_file = generator.generate_contract(contract_type, variables)
return send_file(output_file, as_attachment=True)
if __name__ == '__main__':
if not os.path.exists(UPLOAD_FOLDER):
os.makedirs(UPLOAD_FOLDER)
app.run(debug=True)
<!DOCTYPE html>
<html>
<head>
<title>智能合同生成系统</title>
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
.form-group { margin-bottom: 15px; }
label { display: block; margin-bottom: 5px; font-weight: bold; }
input, select { width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px; }
button { background-color: #4CAF50; color: white; padding: 10px 15px; border: none; border-radius: 4px; cursor: pointer; }
button:hover { background-color: #45a049; }
</style>
</head>
<body>
<h1>合同生成系统</h1>
<form action="/generate" method="post">
<div class="form-group">
<label for="contract_type">合同类型:</label>
<select id="contract_type" name="contract_type" required>
<option value="employment">劳动合同</option>
<option value="nda">保密协议</option>
<option value="service">服务合同</option>
</select>
</div>
<div class="form-group">
<label for="party_a">甲方名称:</label>
<input type="text" id="party_a" name="party_a" required>
</div>
<div class="form-group">
<label for="party_b">乙方名称:</label>
<input type="text" id="party_b" name="party_b" required>
</div>
<div class="form-group">
<label for="effective_date">生效日期:</label>
<input type="date" id="effective_date" name="effective_date" required>
</div>
<div class="form-group">
<label for="term">合同期限(月):</label>
<input type="number" id="term" name="term" required>
</div>
<div class="form-group">
<label for="signature_a">甲方签字:</label>
<input type="text" id="signature_a" name="signature_a" required>
</div>
<div class="form-group">
<label for="signature_b">乙方签字:</label>
<input type="text" id="signature_b" name="signature_b" required>
</div>
<button type="submit">生成合同</button>
</form>
</body>
</html>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。