123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- from flask import Blueprint, request, jsonify,render_template_string
- from models import db, Activity
- from campus_activity_system.utils.nlp_utils import classify_activity_type
- from flask import Blueprint, request, jsonify
- from models import db, User
- from campus_activity_system.utils.ocr_utils import extract_text_from_image
- from campus_activity_system.utils.nlp_utils import extract_information
- import os
- activity_bp = Blueprint('activity', __name__)
- user_bp = Blueprint('user', __name__)
- @activity_bp.route('/activities', methods=['POST'])
- def create_activity():
- data = request.json
- title = data.get('title')
- description = data.get('description')
- date = data.get('date')
- location = data.get('location')
- # 使用NLP工具进行活动类型分类
- activity_type = classify_activity_type(description)
- new_activity = Activity(title=title, description=description, type=activity_type, date=date, location=location)
- db.session.add(new_activity)
- db.session.commit()
- return jsonify({'message': 'Activity created successfully', 'type': activity_type}), 201
- @activity_bp.route('/activities', methods=['GET'])
- def get_activities():
- activities = Activity.query.all()
- result = []
- for activity in activities:
- result.append({
- 'id': activity.id,
- 'title': activity.title,
- 'description': activity.description,
- 'type': activity.type,
- 'date': activity.date.strftime('%Y-%m-%d %H:%M:%S'),
- 'location': activity.location
- })
- return jsonify(result), 200
- @user_bp.route('/register', methods = ['GET'])
- def index():
- return render_template_string(open('static/register.html').read())
- @user_bp.route('/register', methods=['POST'])
- def register_user():
- data = request.form
- image_file = request.files.get('id_card_image')
- if not image_file:
- return jsonify({'error': '请上传身份证图片'}), 400
- # 保存上传的图片到临时目录
- image_path = os.path.join('/tmp', image_file.filename)
- image_file.save(image_path)
- try:
- # 提取文本
- extracted_text = extract_text_from_image(image_path)
- # 抽取姓名和身份证号
- user_info = extract_information(extracted_text)
- # 创建新用户
- new_user = User(
- username=data.get('username'),
- email=data.get('email'),
- name=user_info.get('name'),
- id_number=user_info.get('id_number')
- )
- db.session.add(new_user)
- db.session.commit()
- return jsonify({'message': '注册成功', 'name': user_info.get('name'), 'id_number': user_info.get('id_number')}), 201
- except Exception as e:
- return jsonify({'error': str(e)}), 500
- finally:
- # 清理临时文件
- if os.path.exists(image_path):
- os.remove(image_path)
|