def create(): if request.method == "POST": if request.form["title"] and request.form["body"] and request.form[ "lead"]: db = g.sqlite_db.cursor() title = request.form.get("title") body = request.form.get("body") localtime = time.asctime(time.localtime(time.time())) lead = request.form.get("lead") url = slugify(title) if request.form.get("publish") == "publish": mytuple = (title, lead, body, 1, localtime, url) db.execute( """insert into fts_entries(title, lead, body, published, date, url) values(?, ?, ?, ?, ?, ?)""", mytuple) if request.form.get("save_for_later") == "save_for_later": mytuple = (title, lead, body, 0, localtime, url) db.execute( """insert into fts_entries(title, lead, body, published, date, url) values(?, ?, ?, ?, ?, ?)""", mytuple) flash("Your post has been created successfully") get_db().commit() return redirect(url_for("admin_posts")) else: flash("You haven't entered text") return render_template('create.html') return render_template('create.html')
def edit(): db = g.sqlite_db.cursor() if request.method == "POST": if request.form.get("edit_btn") == "edit": entry_id = int(request.form.get("edit_id")) mytuple = (entry_id, ) db.execute("select rowid, * from fts_entries where rowid=?", mytuple) entry = db.fetchone() return render_template("edit.html", entry=entry) # post from home page elif request.form.get("publish_index") == "publish_index": rowid = int(request.form.get("rowid")) mydic = {"published": 1, "rowid": rowid} db.execute( """update fts_entries set published=:published where rowid=:rowid""", mydic) flash("Post has been published successfully") get_db().commit() return redirect(url_for("admin_posts")) elif request.form.get("unpublish") == "unpublish": rowid = int(request.form.get("rowid")) mydic = {"published": 0, "rowid": rowid} db.execute( """update fts_entries set published=:published where rowid=:rowid""", mydic) flash("Post has been unpublished successfully") get_db().commit() return redirect(url_for("admin_posts")) else: return redirect(url_for("admin_posts")) return redirect(url_for("admin_posts"))
def top_5(): if request.method == "POST": db = g.sqlite_db.cursor() # adding post to TOP-5 if request.form.get("add_to_top5"): # check how many TOP-5 posts already exist db.execute(""" select count(*) from fts_entries where top5 !=0 """) # fetchone returns a tuple like (1, ) count = db.fetchone()[0] if count < 5: rowid = request.form.get("rowid") mydic = {"top5": 1, "rowid": rowid} db.execute( """update fts_entries set top5=:top5 where rowid=:rowid""", mydic) get_db().commit() flash("Post has been added to top5 successfully") return redirect(url_for("admin_posts")) else: flash("Too many posts in top5 already. Please, remove some") return redirect(url_for("admin_posts")) if request.form.get("remove_from_top5"): rowid = request.form.get("rowid") mydic = {"top5": 0, "rowid": rowid} db.execute( """update fts_entries set top5=:top5 where rowid=:rowid""", mydic) get_db().commit() flash("Post has been removed from top5 successfully") return redirect(url_for("admin_posts")) return redirect(url_for("admin_posts"))
def subscribe(): if request.method == "POST": form = EmailForm() if form.validate_on_submit(): db = g.sqlite_db.cursor() email = request.form.get("email") mytuple = (email, ) db.execute("insert into subscribers (email) values (?)", mytuple) get_db().commit() flash("You have subscribed successfully!") send_email("Hello", sender="*****@*****.**", recipients=[email]) return redirect(url_for("allposts")) else: flash("Not valid email") return redirect(url_for("allposts")) return redirect(url_for("allposts"))
def before_request(): """Opens the database before the request.""" get_db()
def update(): if request.method == "POST": db = g.sqlite_db.cursor() rowid = int(request.form.get("rowid")) title = request.form.get("title") lead = request.form.get("lead") body = request.form.get("body") if request.form.get("edit_delete_btn") == "delete": mytuple = (rowid, ) db.execute("delete from fts_entries where rowid=?", mytuple) get_db().commit() flash("Entry has been deleted successfully") return redirect(url_for("admin_posts")) if request.form.get("publish") == "publish": url = slugify(title) mydic = { "title": title, "lead": lead, "body": body, "published": 1, "url": url, "rowid": rowid } db.execute( """update fts_entries set title=:title, lead=:lead, body=:body, published=:published, url=:url where rowid=:rowid""", mydic) get_db().commit() flash("Changes saved successfully") return redirect(url_for("admin_show_post", url=url)) if request.form.get("save_for_later") == "save_for_later": url = slugify(title) mydic = { "title": title, "lead": lead, "body": body, "published": 0, "url": url, "rowid": rowid } db.execute( """update fts_entries set title=:title, lead=:lead, body=:body, published=:published, url=:url where rowid=:rowid""", mydic) get_db().commit() flash("Changes saved successfully") return redirect(url_for("admin_show_post", url=url)) return redirect(url_for("admin_posts"))