2016-05-24 23 views
1

基本的にフォームをとり、プレビュー用のフォームコンテンツをユーザに送信し、ユーザがOKならばコンテンツを公開するアプリケーション(Flaskを使用)を作成しようとしています。ユーザーがプレビューを拒否した場合、フォームに元のデータを戻して編集することができます。Python Flaskの関数間でパラメータを渡す

基本的な構造は

@app.route('/edit') 
def edit(): 
    ... 
    #return rendered page for form inputting 
    #the form action triggers preview() 
@app.route('/preview') 
def preview(): 
    ... 
    #return rendered page for preview 
    #one button triggers publish() 
    #one button redirect to edit() and send back the form information 
@app.route('/publish') 
def publish(): 
    ... 
    #write content to database 
    #redirect to view() 
@app.route('/') 
def view(): 
    ... 
    #rendered page for viewing contents 

あるご質問は、私は前後にコンテンツを渡す必要がある方法です。私は

  1. 情報

を保存するために一時ファイル(TXTやデータベースなど)を作成

  • をapp.pyでグローバル変数を作成し、異なる機能によってそれを変更することができると思う私は両方だと思います彼らは十分ですか?これを行う専門的な方法は何ですか?

  • +0

    コンテンツを1つずつ次々と渡す以上のことをしない限り、私は編集とプレビューのために2つの別々のページを持たないようにします。ユーザーが結果に満足するまで、クライアントにコンテンツを残すことを検討できます。 – njzk2

    +0

    プレビューページにフォームを含めることができます。プレビューを表示するために使用されるさまざまな要素を持つ隠しフォームまたはユーザーに提示される読み取り専用フォームのいずれかになります。 – dirn

    +0

    @ njzk2私はそれが良い点だと思う。私はそれを実現するためにJavaScriptを使用することができます。 – ssd

    答えて

    0

    Flaskのアプリケーションは、の状態であるのようになりました。その情報はFlaskプロセスに含まれ、その内部でのみ表示されるためです。したがって、いくつかのWebプロセスを生成すると、グローバルバージョンの異なるバージョンが取得されます。また、プロセスがクラッシュしたり再起動したりすると、情報はすべて消えてしまいます。

    あなたが明示的にデータストア(例えばRDBMS、NoSQLのなど)、またはすべてのフラスコに集中された「キャッシュ」サーバーの非常に少なくともいくつかの並べ替えのように、状態を保つに行われているもので、これを持っていたいですプロセス。

    プレビューしているコンテンツはデータストアに保存され、フォームに表示され、フラスコアプリを渡すことができるデータストア内のID(例:RDBMSの主キー)があります。

    関連する問題