账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Python 新手,这段代码怎么写比较优雅?
    29
    0

    刚刚学习 python2 个月,这段代码基本功能实现了,不过视图函数里面写这么一堆好乱,请问下如何优化这段代码比较好呢,以下代码主要就是通过表单提交的数据,通过 ajax 发送 post 请求到后端,实现修改和新增


    @admin.route("/set", methods=['GET', 'POST'])
    def set_task():
        if request.method == 'GET':
            req = request.args
            task_id = int(req.get('id', 0))
            task_item = None
            if task_id:
                task_item = TaskItem.find(task_id)
            task_cats = TaskCategory.find_all()
            return render_template('admin/task/edit.html', task_item=task_item, task_cats=task_cats)
    
        req = request.values
        task_id = req['id'] if 'id' in req else ''
        task_name = req['task_name'] if 'task_name' in req else ''
        cat_id = int(req['cat_id']) if 'cat_id' in req else ''
        price = req['price'] if 'price' in req else ''
        quantity = int(req['quantity']) if 'quantity' in req else ''
        if task_id:
            task_item = TaskItem.find(task_id)
            model_task_item = task_item
            model_task_item.update_time = get_current_time()
    
        else:
            model_task_item = TaskItem()
            model_task_item.create_time = get_current_time()
    
        model_task_item.name = task_name
        model_task_item.category_id = cat_id
        model_task_item.price = price
        model_task_item.quantity = quantity
        model_task_item.summary = ''
        model_task_item.main_image = ''
    
        db.session.add(model_task_item)
        db.session.commit()
        return Success()
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 您没有提供具体的代码,所以我无法针对特定代码给出优化建议。但是,我可以给您一些通用的Python优雅编程原则: 1. **简洁明了**:尽量使用 Python 内置函数和模块,避免重复造轮子。例如,使用 `enumerate` 而不是自定义索引循环,使用 `dict.get` 代替检查字典中是否存在键。 ```python # 不优雅 if key in my_dict: value = my_dict[key] # 优雅 value = my_dict.get(key, default_value) ``` 2. **列表推导式**:在处理数据集合时,尽可能使用列表推导式代替传统的 for 循环。 ```python # 不优雅 squares = [] for i in range(10): squares.append(i * i) # 优雅 squares = [i * i for i in range(10)] ``` 3. **使用上下文管理器**:对于需要进行打开和关闭操作的对象(如文件、数据库连接等),使用 `with` 语句。 ```python # 不优雅 f = open('file.txt', 'r') try: content = f.read() finally: f.close() # 优雅 with open('file.txt', 'r') as f: content = f.read() ``` 4. **函数和类的命名及文档注释**:遵循 PEP8 格式规范,函数名和变量名应清晰描述其功能或内容,同时为重要的函数和类添加文档字符串。 5. **利用生成器表达式与生成器函数**:当处理大数据集时,如果不需要一次性加载所有数据到内存,可以考虑使用生成器。 6. **避免硬编码**:将可能变化的值(如常量、配置项)提取出来作为变量或者配置文件。 以上只是一些基本的原则,优雅的代码还体现在可读性、可维护性和效率等方面。具体到您的代码,请提供详细内容以便我能给出更具体的建议。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部