网站首页/ 信息中心/ 档案百科/

从零搭建可投入使用的档案不动产管理系统全流程实操指南

发布时间:2026年09月19日 11:30:01 浏览量:0

前置环境准备(一键安装,无复杂配置)

本系统基于轻量Python栈开发,本地就能运行,不需要额外服务器,仅需两步完成环境准备:

安装完成后,终端输入python --version,输出版本号≥3.8即为正常。接下来执行依赖安装命令,直接复制执行即可:

```
pip install flask==2.3.3 sqlalchemy==2.0.20
```

核心文件创建,代码可直接复制使用

1. 创建项目结构

在电脑任意位置新建文件夹,命名为estate-file-system,进入文件夹后新建3个空白文件,分别为:config.py(配置文件)、models.py(数据模型)、app.py(主程序入口),无需新建其他文件夹。

2. 编写配置文件config.py

直接复制以下完整代码到文件,不需要修改任何内容:

```
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config:
SECRET_KEY = 'estate-file-manage-secret-key-2024'
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'estate.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False
```

3. 编写数据模型models.py

已经预设好不动产档案所有核心字段,直接复制完整内容即可:

从零搭建可投入使用的档案不动产管理系统全流程实操指南

```
from datetime import datetime
from sqlalchemy import Column, Integer, String, Date, Float, Text
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class EstateFile(Base):
__tablename__ = 'estate_files'
id = Column(Integer, primary_key=True, autoincrement=True)
address = Column(String(200), nullable=False, index=True)
owner = Column(String(100), nullable=False, index=True)
type = Column(String(50), nullable=False)
area = Column(Float, nullable=False)
cert_no = Column(String(50), unique=True, nullable=False, index=True)
register_date = Column(Date, nullable=False)
remark = Column(Text)
create_time = Column(datetime, default=datetime.now)
```

4. 编写主程序app.py

已经实现增删改查、检索所有核心功能,直接复制完整代码即可:

```
from flask import Flask, render_template_string, request, redirect, url_for
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from config import Config
from models import Base, EstateFile
app = Flask(__name__)
app.config.from_object(Config)
engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
INDEX_HTML = '''




不动产档案管理系统



不动产档案管理
{% for file in files %} {% endfor %}
档案ID坐落地址权利人不动产类型面积(㎡)产权证号登记日期操作
{{ file.id }} {{ file.address }} {{ file.owner }} {{ file.type }} {{ file.area }} {{ file.cert_no }} {{ file.register_date }} 编辑 删除
''' ADD_EDIT_HTML = ''' {% if file %}编辑档案{% else %}新增档案{% endif %}
{% if file %}编辑档案{% else %}新增档案{% endif %}
{% if file %}{% endif %}
''' @app.route('/') def index(): session = Session() files = session.query(EstateFile).order_by(EstateFile.create_time.desc()).all() session.close() return render_template_string(INDEX_HTML, files=files) @app.route('/search') def search(): keyword = request.args.get('keyword', '').strip() session = Session() files = session.query(EstateFile).filter( (EstateFile.address.contains(keyword)) | (EstateFile.owner.contains(keyword)) | (EstateFile.cert_no.contains(keyword)) ).all() session.close() return render_template_string(INDEX_HTML, files=files) @app.route('/add', methods=['GET', 'POST']) def add(): if request.method == 'GET': return render_template_string(ADD_EDIT_HTML) data = request.form new_file = EstateFile( address = data.get('address'), owner = data.get('owner'), type = data.get('type'), area = float(data.get('area')), cert_no = data.get('cert_no'), register_date = data.get('register_date'), remark = data.get('remark', '') ) session = Session() session.add(new_file) session.commit() session.close() return redirect(url_for('index')) @app.route('/edit', methods=['GET', 'POST']) def edit(): file_id = request.args.get('id') session = Session() file = session.query(EstateFile).filter_by(id=file_id).first() if request.method == 'POST': file.address = request.form.get('address') file.owner = request.form.get('owner') file.type = request.form.get('type') file.area = float(request.form.get('area')) file.cert_no = request.form.get('cert_no') file.register_date = request.form.get('register_date') file.remark = request.form.get('remark') session.commit() session.close() return redirect(url_for('index')) session.close() if file.register_date: file.register_date = file.register_date.strftime('%Y-%m-%d') return render_template_string(ADD_EDIT_HTML, file=file) @app.route('/delete') def delete(): file_id = request.args.get('id') session = Session() file = session.query(EstateFile).filter_by(id=file_id).first() if file: session.delete(file) session.commit() session.close() return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=5000) ```

启动系统,开始使用

第一步:打开终端,进入项目文件夹,Windows示例:如果项目在D盘根目录,执行命令:d: && cd estate-file-system,Mac示例:cd ~/estate-file-system

第二步:执行启动命令:

```
python app.py
```

第三步:打开任意浏览器,地址栏输入 http://localhost:5000,即可进入系统使用。

日常使用说明

如果需要部署到服务器供多人使用,仅需将项目上传到服务器,开放服务器5000端口,用同样命令启动即可,通过服务器IP加端口即可访问。

微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818