Rustのtera,actix-webを使って、ブログサイトを作ろうとしています。
コードの一部の切り抜きですが、下記のように、htmlからformを送信して、データをmysqlにインサートしています。
rust
1async fn index( 2 params: web::Form<HashMap<String, String>>, 3 tmpl: web::Data<tera::Tera> 4) -> Result<HttpResponse, Error> { 5 6 //要素の取得 7 let maintitle: String = params.get("maintitle").unwrap(); 8 9 //mysqlにインサートする処理 10 diesel::insert_into(blog)//table取得 11 .values(&maintitle) 12 .execute(&connection)//コネクション 13 .expect("Error saving new post"); 14 //mysqlからロードする処理 15 let results = blog 16 .find(id)//データid指定 17 .load::<Blog>(&connection) 18 .expect("Error loading posts"); 19 println!("{}", &results[0].maintitle) 20 let mut ctx = tera::Context::new(); 21 //teraにインサートする処理 22 ctx.insert("maintitle", &results[0].maintitle); 23 24 //レスポンスを返す処理 Ok(HttpResponse::Ok().content_type("text/html").body(tmpl.render("blog.html", &ctx) 25 .map_err(|_| error::ErrorInternalServerError("Template error"))?)) 26 27} 28 29上記のコードは実際に動かしていないので、誤字などあるかもしれませんが、こんな感じの実装でも、一行のデータ構造であれば読み込み、書き込みまで行うことができます。 30しかし、改行を含む文章を入力すると、mysqlまでは改行した文章構造で保存ができましたが、出力となると,途中のprintln!にて標準出力までは、(改行されているデータが)出力されるものの、ブラウザ上には出力されません。 31Teraの機能で上記のような機能はあるのでしょうか? 32ご教授よろしくお願いします。 33 34
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。