首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >合同生成器,在线制作合作生成器,合同在线制作生成器【python】

合同生成器,在线制作合作生成器,合同在线制作生成器【python】

原创
作者头像
用户11749621
发布2025-07-25 11:14:49
发布2025-07-25 11:14:49
3310
举报

下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:8871

这个合同生成器系统使用Flask框架构建,包含完整的Web界面和文档处理功能。系统支持多种合同模板,用户只需填写表单即可生成专业Word格式合同文档。使用时需要预先准备合同模板文件并放入templates目录。

代码语言:txt
复制

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)
代码语言:txt
复制
<!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 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档