def new_item(): form = NewItemForm() form.category.choices = crud.get_categories() form.subcategory.choices = crud.get_subcategories() # POST if form.validate_on_submit() and \ form.image.validate(form, extra_validators=(FileRequired(),)): filename = save_image_upload(form.image) # create data # escape()したデータはテンプレートでsafeフィルターを併用すること crud.create_item( title=escape(form.title.data), description=escape(form.description.data), price=float(form.price.data), image=filename, category_id=form.category.data, subcategory_id=form.subcategory.data, ) # Redirect to some page flash( "Item {} has been successfully submitted".format( request.form.get("title")), "success") return redirect(url_for("home")) # GET return render_template("new_item.html", form=form)
def browse(): """ load browse page """ categories = [{ "name": category['category'], "badge_code": category['code'], "href": "/category/%s" % category['id'] } for category in crud.get_categories()] return render_template('browse.html', items=categories)
def get_categories(): """Get a list of category names from the database.""" categories = [] cat_data = crud.get_categories() for entry in cat_data: categories.append({'code': entry.cat_code, 'name': entry.name}) return jsonify(categories)
def home(): form = FilterForm(request.args, meta={"csrf": False}) # データ変更なしのためCSRF対策不要 categories = crud.get_categories() categories.insert(0, (0, "---")) form.category.choices = categories subcategories = crud.get_subcategories() subcategories.insert(0, (0, "---")) form.subcategory.choices = subcategories if form.validate(): items = crud.get_items(title=escape(form.title.data.strip()), category_id=form.category.data, subcategory_id=form.subcategory.data, order=form.price.data) else: items = crud.get_items() # jQueryの場合は、"X-Requested-With: XMLHttpRequest"ヘッダーで判別する方法もある if request.args.get("ajax", type=int): # MultiDict(TypeConversionDict) return render_template("_items.html", items=items) return render_template("home.html", items=items, form=form)
async def get_categories(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): return crud.get_categories(skip=skip, limit=limit, db=db)
def browse(): """ load browse page """ return render_template('browse.html', categories=crud.get_categories())
def create_recipe(): """Show create recipe page.""" if request.method == "GET": cuisines = crud.get_cuisines() categories = crud.get_categories() ingredients = crud.get_ingredients() if session.get("user_id") == None: flash("Please log in to create a new recipe.") return redirect('/') return render_template("create_recipe.html", cuisines=cuisines, categories=categories, ingredients=ingredients) elif request.method == "POST": kwargs = { "title": request.form.get("title"), "description": request.form.get("description"), "prep_time": request.form.get("prep_time"), "cook_time": request.form.get("cook_time"), "total_time": request.form.get("total_time"), "serving_qty": request.form.get("serving_qty"), "source": request.form.get("source"), "user_id": session.get("user_id"), "cuisine_id": request.form.get("cuisine_id") } recipe = crud.create_recipe(**kwargs) category_id = request.form.get("category_id") crud.create_recipe_category(recipe.recipe_id, category_id) # Get ingredient, measurement, and instruction items in a dictionary # If flat is False, returns all items as a list request_dict = request.form.to_dict(flat=False) for ingredient, measurement in zip(request_dict["ingredients"], request_dict["measurements"]): ingredient_object = crud.create_ingredient(ingredient) crud.create_recipe_ingredient(recipe.recipe_id, ingredient_object.ingredient_id, measurement) for step_num, instruction in enumerate(request_dict["instructions"]): crud.create_recipe_step(recipe.recipe_id, step_num + 1, instruction) # Get images from create recipe form for image in request_dict["images"]: image_object = crud.create_image(image) crud.create_recipe_image(recipe.recipe_id, image_object.image_id) if recipe: flash('Congrats! A new recipe was created.') else: flash('Error.') return redirect('/create_recipe')
def all_categories(): """View all categories.""" categories = crud.get_categories() return render_template('all_categories.html', categories=categories)
async def get_categories(db: Session = Depends(get_db)): return crud.get_categories(db)
def homepage(): categories = crud.get_categories() return render_template('homepage.html', categories=categories)
async def resolve_get_categories(root, info): try: categories = crud.get_categories(db=database.SessionLocal()) return categories except: raise GraphQLError('Categories not found!')