技術メモ

メモ代わりに使います!

2018-01-01から1ヶ月間の記事一覧

Rails-開発環境構築

ちょっとずつ作業しながら追記します。 ①VagrantのVM作成 vagrant box add ubuntu1604 https://atlas.hashicorp.com/bento/boxes/ubuntu-16.04/versions/2.3.6/providers/virtualbox.box mkdir ubuntu1604 cd ubuntu1604 vagrant init ubuntu1604 vagrant up…

SQL-カテゴリ毎+全部の合計金額を取得したい場合

select ifnull(c.name, '総計') , sum(ab.purchase_price) from test.account_books ab inner join test.categories c on c.id = ab.category_id group by c.name with rollup;

Go言語-特徴

下記にgo言語特徴載ってた web-technical.hatenablog.com

SQL-crossjoin

1人あたりに3枚の期限違いのクーポン発行するsql作るとかに役立つb select tmp1.id tmp2.epxired from user as tmp1 cross join ( select '2018-01-31' as expired union all select '2018-02-28' as expired union all select '2018-03-31' as expired ) as…

SQL-id指定でのsort

order by句にidの数値指定可能 下記のように記載することで13のものが最初に表示される order by id = 13 desc

Python-文字列からdatetime型に変換

from datetime import datetime as dt tstr = '2012-12-29 13:49:37' tdatetime = dt.strptime(tstr, '%Y-%m-%d %H:%M:%S')

Markdown-API仕様書作成

下記を参考にして作成しました。 html化が何故かできないのでわかり次第まとめます。 とりあえず自分で確認する分には問題なし dev.classmethod.jp

go言語-メモ

①PackageについてGo言語はパッケージで構成されているプログラムはmainパッケージから開始される規約でパッケージ名はインポートパスの最後の要素と同じ名前となります。例math/randのパッケージを最後にインポートしている場合package rand②Imports③Exported…

Django-特徴

①プロトタイプが作りやすいWEBアプリ開発でよく使われる、「ユーザ認証」「管理画面」「差異との案内ページ」「RSSフィード」などのよく使われる昨日はあらかじめ含まれています。②セキュリティが安心たくさんの共通する脅威に対して対策が施されています。③…

datalayerを使うメリット

1つ押さえておきたいのは、値を渡すことだけであれば、無理をしてデータレイヤー変数を使わなくてもいいということです。例えば、該当箇所のHTMLタグにid属性を記述できるならDOM要素として、JavaScript変数としてHTMLに値を書き出せるならJavaScript変数と…

CakePHP2-マジックメソッド

Byのあとをカラム名と見なして検索する。以下は「where User.id=123」と同じ。findBy$this->User->findById(123); findAllBy$this->User->findAllById(123); findByは単一レコード取得のfind('first')と同じ。findAllByは複数レコード取得のfind('all')と同…

Python-長い行を途中で折り返す

v = 1 + 2 + \ 3 + 4 + 5 \ + 6 + 7 \ + 8 + \ 9 + 10 print v

Python-insert実行してもエラーはないのにデータが作成されない

下記のようにcommitとcloseを忘れないように db = connect_to_cloudsql() cursor = db.cursor() cursor.execute('SET NAMES utf8;') cursor.execute('SET CHARACTER SET utf8;') cursor.execute('SET character_set_connection=utf8;') cursor.execute("inse…

Python-現在表示されているページのURLを取得

下記のように記載することで取得可能 class ShowQuestion(webapp2.RequestHandler): def get(self, id): question = Questions.get_by_id( int( id ) ) #数値idの場合intキャストする # いろいろする app = webapp2.WSGIApplication([ ('/questions/(.*)', S…

Python-Postされた日本語をdbに格納しようとするとエラーになる

エラー内容 UnicodeEncodeError: 'latin-1' codec can't encode characters in position 52-55: ordinal not in range(256) 上記を対応しようとした場合入れる値をencode .encode('utf-8')

Python-mysqlから取得した文字列をjsonで返却する際に??になってしまう

半日悩みました・・・ 下記のようにsql実行前にdbの型を変更すれば良いみたい db = connect_to_cloudsql() cursor = db.cursor() cursor.execute('SET NAMES utf8;') cursor.execute('select * from test.categories;')

GETとPOSTの違い

①まずURLが違う・POSTの場合https://XXXX/form・GETの場合https://XXXX/form/?text=xxxx②送信できるデータ量が違う・POSTの場合大量のデータを送信したい場合HTTP通信で送信されるのでURLの影響を受けることがない・GETの場合URLに使用できる2083文字が最大③…

Phalcon-Model作成コマンド

phalcon model --name=t_enquete_salons --get-set --extends=\Epark\App\Model\BaseModel --namespace=Epark\App\Model\MiPortal --doc

CakePHP3-Sessionの使い方

Cakephp3ではSessionComponentが廃止されController内から$this->Sessionができなくなった。代わりに$this->request->session()を使用する ①今までと同じように呼べるように設定 class AppController extends Controller { public function initialize() { p…

CookieとSessionの違いについて

・SessionとはWebブラウザを閉じるまで保存するリンクなどを張ってページを移動しても内容を保持することができる⇒Sessionに保存された内容はWebサーバーにファイルとして保存される。・Cookie1つのドメイン対して保存できるCookieの数は20個まで1つのCookie…

XAMPP-python始める方法

httpd.confに下記追記 # # For Python # AddHandler cgi-script .py ScriptInterpreterSource Registry-Strict htdocs配下に下記内容のpyファイル作成 ※一番上の箇所は自分のpython.exeが格納されているパスを指定 #!C:\Python27\python.exe print("Content-…

SQL-アンチパターン斜め読み

SQL

①Jaywalking(信号無視)1対多または多対多の関係テーブル間のid管理において、varchar等のカラムを用意して「1,2,3,4,5」のように区切り文字で区切った値を代入すること②Native Trees(素朴な木)親子関係を持つテーブル間のid管理において、中間テーブルを用意…

SQL-INDEXを作成するとどうなる

①検索が早くなる②データの挿入、更新、削除が遅くなる⇒レコードに対して処理をするだけではなくインデックスに対しても処理しなくてはいけなくなるからそのため更新を頻繁に行うテーブルの場合は2~3個までにしておく

SQL-INDEXを作成したほうが良い場合と悪い場合

作成したほうが良い場合・大規模な表のある特定の行を頻繁に検索する・列の値が(ほぼ)一意的である・Where句の条件として頻繁に使用する列である作成しないほうが良い場合・列内の値の種類が少ない(性別など)・NULL値が多くNULLでない値を検索しない・表…

SQL-改善方法

①SELECT文で*を使わない②WHERE句の左側で算術演算や関数を指定しない⇒例えインデックスが定義されているカラムでもテーブル全体を走査してしまい、インデックスが効かなくなる③テーブルの別名を利用する⇒テーブルに別名を付けてフィールド名にはその別名をつ…

CakePHP2-クロージャについて

// 既に回答済みの場合 $recordExistsValidation = function($record) { if($record) { return; } }; $recordExistsValidation($this->TEnqueteSatisfaction->recordExists(array('booking_id' => $bookingId)));

CakePHP2-array_multisort

$sort = array(); foreach($out as $key=>$value){ $sort['available'][$key] = $value[MDL_T_COUPON_COURSES]['available']; $sort['sort'][$key] = $value[MDL_T_COUPONS]['sort']; $sort['today_available_active'][$key] = $value[MDL_T_SHOP_AVAILABILI…

CakePHP2-Modelで今までに発行したSQL確認方法

debug($this->getDataSource()->getlog());

ajaxでボタン処理した際にずっと更新中になる

これのcontextが邪魔していた /** * いいね回数更新と取得 */ //画面読み込み時処理 $(function() { //ajax通信中のフラグ var ajaxConnecting = false; $.ajaxSetup({ type: 'PUT', dataType: 'json', complete: function() { ajaxConnecting = false; } })…

CakePHP2-Validate方法

①モデルにvalidate記載 array( 'rule' => 'notEmpty', 'required' => true, 'message' => '「お名前」は必ず入力して下さい', ), 'email' => array( 'rule'=> 'email', 'required' => true, 'message' => '「メールアドレス」は正しく入力して下さい', ), 'comm…