Entries from 2018-01-01 to 1 year

【snake】 Section: 16 Accepting Recurring Payments ②

Cancelling Your Subscription Subscriptionのページで下のボタンでキャンセル項目がある。 進むとconnect itボタンがある。 キャンセルを確定させると それでは実際にcancel.htmlをみる。 かなりシンプルなので解説はない。 次にbilling.pyを確認する。 以…

【snake】 Section: 16 Accepting Recurring Payments ①

Signing up with Stripe なぜstripeを使うのか。 以下の3社があるがStripeが良い。 Stripe PayPal SPIKE Paypalはアカウント持ってないといけない。 APIが優れている。 IDを作る Going over the requirements.txt Changes 新しく以下の2つを導入する。 mock…

【Docker DevApp】Section: 3 Docker basics

Dockerに関して 全体的な動きやそのほか全くわかってないのでどんどん動かす。 Image vs Container Dockerfile イメージの作成手順のようなもの Dockerイメージ コンテナのファイルシステム、設定をひとまとめに保存しています。コンテナの元になるもの。 コ…

【Docker DevApp】Section: 2 Getting setup

Preparing your system for Docker 以下でそれぞれダウンロードしてインストールする。 Download VirtualBoxhttps://www.virtualbox.org/wiki/Downloads Download xubuntu 14.04.3http://cdimage.ubuntu.com/xubuntu/releases/14.04/release/xubuntu­14.04.3…

【snake】 Section: 15 Quality of Life CLI Improvements

Creating Secure Tokens 以下のコマンドでsecret keyを生成することができる。 短いキーを作ることもできる。 $ docker-compose exec website snakeeyes secret $ docker-compose exec website snakeeyes secret 64 cliフォルダー/コマンドフォルダー/cmd_se…

【snake】Section: 14 Logging, Middleware and Error Handling

Tracking Response Times for All Requests(gunicorn.pyに関して) 以下を実行すると docker-compose up --build 1000で割れば秒表示になるのでマイクロセコンドで表示する。 今回の場合だと2.844秒かかったとわかる。 configフォルダーのgunicorn.pyで確認…

【snake】Section: 13 Creating a Custom Admin Dashboard

Why Are We Not Using Flask-Admin? ①カスタマイズに関してより知識を深めるため。 ②デバッグでテストする際に何千行も書かれた3rd partyを使うべきでない。 ③大して難しくない。 Adding the Admin Blueprint Viewing the Main Dashboard Section12からAdmin…

【snake】Section: 12 Creating a Complete User System

requirements.txt に関して psycopg2はpostgresqlのデータベースと接続する。 Flask-SQLAlchemはextentionを簡素化する。 Flask-Loginはログイン機能のextentionである。 Configuring the App to Handle Users SQLAlchemyを使うには接続するための情報を設定…

【snake】Section: 11 Creating a Contact Form

requirements.txtに追加する。 Celeryを使えばタスクを別のスレッドやマシンに分散することができる。このタスクを分散させる仕組みをタスクキューといい、Celeryのプロセスは新しいタスクが入ってきていないかタスクキューを監視する。よくわからんけど、re…

【snake】Section: 10 Using Our First Flask Extension

requirements.txtに追加する flaskのdebug toolを追加する。 このツールバーを使うことで、何秒かかったとか、データベースに何回アクセスしたとかそういうことがわかるようになる。 # Extensions. flask-debugtoolbar==0.10.0 Debug Toolbar Dockerを起動さ…

【snake】Section: 9 Creating a CLI Script

なぜCLI Scriptが必要なのか? 簡単だから。flagやコマンドを思い出すのは複雑で難しい。 section9では、以下のコードを追加する。 これによってCLIが使えるようになる。 # CLI. Click==6.4 次にsetup.pyである。flaskではない。python的なやり方である。 Do…

【snake】Section: 8 Testing and Code Quality

ここでは、テストコード作成方法についてまとめる requirements.txt でテストに必要なものを準備する pytest=プログラムをテストするためのフレームワーク。処理時間を測定など色々 pytest-cov=何パーセントの確認したかを表示する flake8=Pythonプロジェク…

【snake】Section: 7 Blueprints and Jinja 2 Templates

Creating Our First Flask Blueprint 早速、blueprintを設定した場合のapp.pyファイルを確認してみる。 @app.route('/')で登録されていたモノが app.register_blueprint(page)に変わっている。 ブループリントを使う場合は、フォルダー内もかも変わる。 snak…

【snake】Section: 6 Creating a Base Flask App

Exploring the App's Package Dependencies requirements.txtを変更するだけ変えることができる。 You can just change the 0.10 to 0.11 in requirements.txt and you’re good to go. Flaskのapp.pyに関して flaskをインポートする functionを作る: def cr…

【snake】Section: 5 Dockerの設定方法

なぜDocker? Save Yourself from Years of Turmoil by Using Docker Today — Nick Janetakis Dockerとはコンテナと呼ばれる環境の内部でLinuxが動作する。 Docker → Docker内で動けば別のパソコンでも簡単に動く。 Docker無し → 色んなソフト設定を一つ一つ…

Section 10 Improve design using flask-bootstrap

init.pyの設定をする。 次にレイアウトの設定をする。{% block head %}で囲む。 Googleフォントで自由にフォンとを選べる。 cssなどはここでリンク設定をしておく。 実際にcss.styleはこのようになっている。 {% block head %}の次は {% block body %}の設定…

Section 15 Scrapy Arguments

カテゴリー検索を可能にする方法 カテゴリーを決める→ターミナルでそのカテゴリのURL入力→実行 Arguments の設定方法 ①start_urlを変更して以下のdefを作るだけ。 def __init__(self, category): self.start_urls = [category] ②ターミナルで以下を入力 $ sc…

Section 14 Grabbing URLs (Book Store)

Seleniumじゃない方法でスクレイピングをやる。 概要 titleとurlを取得→次のページに行く→各ページのデータ収集 各タイトルのURLを取得する。 最初にstartURLを設定する start_urls = ['http://books.toscrape.com'] titleに付いているURLを確認する。 <a href="catalogue/a-light-in-the-attic_1000/index.html" title="A Light in the Attic">A Lig</a>…

Section 12 Building Web Crawler with Scrapy

本屋のECサイトをスクレイピングする。 プロジェクト環境を整える。 コードは以下の通り $ scrapy startproject books_crawler $ cd books_crawler $ scrapy genspider books books.toscrape.com/ books.pyのURLを変更する。wwwは取り除くことが注意ポイント…

Section 10 Logging into Websites Using Scrapy

プロジェクトを始める setting.pyのobeyをfalseに変更する。 login.pyのurlをhttp://quotes.toscrape.com/loginに変更する $ scrapy crawl loginを実行してみると networkを押して、 all を選択する post requestを使っているということがわかる。 tokenを取…

Section 9, Deploying Scrapy Spider to ScrapingHub

scrapinghubの使い方 ダッシュボードにプロジェクトフォルダーを作る。 次にターミナルからログインしてスパイダーをウップロードする Runボタンを押して動かすだけ。 Jobが終了するとcomplete jobに入る。 csvなどでダウンロードすることなども可能 Periodi…

Section6 Scrapy Advanced Spider

環境設定をする。 $ scrapy startproject test_quotes $ scrapy genspider test_quotes http://quotes.toscrape.com/ shellで準備をする。 scrapy shellを使って動作確認をする。 response.xpath('//[@class="quote"]') でとれる確認する 次にquotes = respo…

Using XPath with Scrapy Section 4

XPathの使い方 始める方法 $ scrapy shell In [2]: from scrapy.selector import Selector 以下のファイルを読み込ませる。 <html> <head> <title>Title of the page</title> </head> <body> <h1>H1 Tag</h1> <h2>H2 Tag with <a href="#">link</a></h2> <p>First Paragraph</p> <p>Second Paragraph</p> </body> </html> 実際に実行して見る In [10]: sel = …

Xpathの基本

基礎編 XPathではXML文章をツリーとして捉えることで、要素や属性の位置を指定することができます。 『@』表記に関して classのような要素に紐づく属性を『@』で表します。 //を用いて途中までのパスを省略することができる。 /html/body/div/span[@class='r…

Scrapy Simple Spider - Section 3

スクレーピーを設定する。 $ python3 -m venv venv_0512 $ source venv_0512/bin/activate $ cd venv_0512 $ pip install scrapy $ sudo pip install ipython スクレーピーをの状況を確認する。 Yuki$ scrapy Scrapy 1.5.0 - no active project Usage: scrap…

Section 17 Craigslist Scraper

Craiglistのスパイダーを作る準備をする $ source venv_0512/bin/activate $ cd venv_0512 $ scrapy startproject craiglist $ scrapy genspider jobs newyork.craigslist.org 最終的なコード タイトルの取得方法 $ scrapy shell 'https://newyork.craigslis…

Enve環境の作り方

ディレクトリ設定→仮想環境作成→仮想環境に入る $ cd desktop/test $ python3 -m venv venv_0401 $ source venv_0401/bin/activate $ cd venv_0401

表示の次にやる事は 登録&ログイン&d削除処理

1. auth package で全体が動くようにblueprintの準備をする 2. route.pyでファンクションが動くようにする。表示処理など 3. templates folder でhtmlに表示するようにする 4. forms.pyでフォーム処理を書く 詳細は次でやる

Section 9 database models

データを取得して、表示させる方法 テーブルを作るためにカタログパッケージの中にmodels.pyを設定する。 appフォルダーのdbをインポートする。 dev, test, prodのどのアプリのどのデータベースを使うかを決めなければならないのでwith文を使って明確にして…

【補足】Blueprintとdbを最短でFlaskを動かす方法

Blueprintを用いた実装は、以下の2ステップで行われます。 Blueprintを実装する 実装したBlueprintをFlaskのアプリケーションに登録する 以下の順でうごかす! run→ route.py→ model.py → home.html ①route.pyがmode.pyを使ってdbを読み込む ②home.htmlに<p></p>