群馬県でPythonを使ったAIやシステムを開発しているファントム

Navigation
群馬県でPythonを使ったAIやシステムを開発しているファントム

群馬県でPythonを使ったAIやシステムを開発しているファントムです。企業の経営課題を最適なテクノロジーで解決します。テックブログではPythonを中心にプログラミングに役立つ情報を発信しています。

投稿を検索する


  • 株式会社ファントム コーポレートサイト

カテゴリー



  • AWS 16
  • Django 45
  • FastAPI 4
  • Flask 8
  • GCP 1
  • Information 37
  • Other 32
  • PHP 2
  • Python 93
  • Pythonista 3
  • Rust 1

タグ


Alembic API argparse Beautiful Soup black Channels charset CodeCommit datetime Django REST framework Docker enumerate f-string git GitHub glob Google Colaboratory i18n IAM Internship Jupyter Lambda Matplotlib Nginx OpenCV pandas PIL Pillow PostgreSQL PyCharm PyCon pyenv PyTorch Redis Rembg ReportLab requests S3 Sentry slack tqdm uWSGI venv Vue.js youtube
このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。

© 2022 Fantom, Inc.

Hydra WordPress Theme by EckoThemes.

Published with WordPress.

Related Articles

Filter by Category

  • Python(93)
  • Django(45)
  • Information(37)
  • Other(32)
  • AWS(16)
  • Flask(8)
  • FastAPI(4)
  • Pythonista(3)
  • PHP(2)
  • GCP(1)
  • Rust(1)

Filter by Author

  • EIGHT (14)
  • hayai017 (2)
  • press (196)
Back to Latest Articles
Django

ダウンロードするファイルの文字コードを動的に変更

ダウンロードするファイルの文字コードを動的に変更 ウェブアプリケーションの中でCSVやテキストファイルをダウンロードさせた時に文字化けが発生する事があります。使用する文字コードが決まっていれば予め固定してしまう事で文字化 […]

Posted on 2nd 12月 2019 by press

Python

Google Colaboratoryで画像をアップロードして表示する

画像のアップロード Google Colaboratoryで画像をアップロードして表示する方法です。画像解析以外にもCSVのアップロードなどの際にも同じ方法でアップロードできます。 画像のインライン表示 今度はアップロー […]

Posted on 31st 10月 2019 by press

Information

2019年10月18日(金)の上毛新聞に掲載されました

2019年10月18日(金)の上毛新聞に掲載されました

Posted on 18th 10月 2019 by press

Django

PostgreSQLと通信するページで502 Bad Gateway

PostgreSQLと通信するページで502 Bad Gateway Djangoで開発したWebアプリでPostgreSQLと通信するページにアクセスした時に、502 Bad Gatewayが発生したので調べた内容と解 […]

Posted on 18th 9月 2019 by press

Information

第5回 群馬ベンチャーサミットに代表の石井が登壇します

第5回 群馬ベンチャーサミットに代表の石井が登壇します 「第5回 群馬ベンチャーサミット」概要 開催日時:2019年9月7日(土) 13:00 ~ 17:30 会場:群馬会館(群馬県前橋市大手町2-1-1) 主催(共同主 […]

Posted on 3rd 9月 2019 by press

Information

ぐんま経済新聞に掲載されました

2019年8月29日(木)のぐんま経済新聞に掲載されました。

Posted on 3rd 9月 2019 by press

Information

2019年の夏季休業のお知らせ

誠に勝手ながら、弊社では下記日程を夏季休業とさせていただきます。 夏季休業期間 2019年8月10日(土)~8月18日(月) 期間中にいただきましたお問い合わせにつきましては、夏季休業期間後の8月19日(火)より順次対応 […]

Posted on 29th 7月 2019 by press

Information

経済産業省「情報処理支援機関(スマートSMEサポーター)」に認定されました

株式会社ファントムは、経済産業省「情報処理支援機関(スマートSMEサポーター)」に認定されました。 2019年6月28日 認定認定番号:第5号‐19060023

Posted on 23rd 7月 2019 by press

Information

桐生タイムスに掲載されました

2019年7月19日(金)の桐生タイムスに、弊社代表の石井が掲載されました。

Posted on 20th 7月 2019 by press

Python

def文を用いて共通の処理を関数化する

以下の2つの記事の応用編です。 今回のポイントは以下の2つです。 ・気温の処理を関数化・Matplotlibで複数のグラフを出力 コードはGitHubリポジトリにあげています。 コード 出力結果 以下の様な気温と降水確率 […]

Posted on 15th 7月 2019 by press

Python

Pythonistaを使って最高気温と最低気温をグラフ化

前回作った気象庁のサイトからBeautifulSoup4を使ってスクレイピングするプログラムの応用編として、今回はiOSアプリのPythonistaを使って最高気温と最低気温をグラフ化します。グラフ化にはMatplotl […]

Posted on 11th 7月 2019 by press

Python

気象庁の天気予報をBeautifulSoup4でスクレイピング

気象庁の天気予報をBeautifulSoup4でスクレイピングします。サンプルとして群馬県の週間天気予報(場所、日付、曜日、最高気温、最低気温)を取得します。 コードはGitHubリポジトリにあげています。 週間天気予報 […]

Posted on 10th 7月 2019 by press

Django

DjangoでSQLログを出力して確認する

DjangoでSQLログを出力して確認する方法です。SQLログをリアルタイムで出力して、どういうクエリがどのタイミングで実行されているのか確認できます。設定方法は簡単で、DEBUG = Trueになっている状態でsett […]

Posted on 6th 7月 2019 by press

Django

DockerのPostgreSQLコンテナのリストア

Dockerで動いているPostgreSQLにデータをリストアする方法です。書き出したPostgreSQLのdumpファイル(リストア用データ)はデスクトップに置いてあるという前提で進めます。 ディレクトリ構造 Dock […]

Posted on 4th 7月 2019 by press

Django

Djangoで502 Bad Gatewayが頻発した時に調べたこと

Djangoで開発中のWebアプリで特定のURLにアクセスした時だけ、502 Bad Gatewayが頻発する様になりました。NginxとuWSGIのログを見たらuWSGIのworkerが死んで復活してを繰り返しているこ […]

Posted on 2nd 7月 2019 by press

Django

Djangoでcould not connect to serverエラーが出たら

DjangoでデータベースにPostgreSQLを使ってる際に以下のエラーが出た時の対処方法です。 サーバーのPostgreSQLのディレクトリに移動します。VERSIONの部分はインストールされているバージョンを入力し […]

Posted on 28th 6月 2019 by press

Django

DjangoとChannelsで簡単なチャットサーバーを構築(3)

前回からの続きです。 チャンネルレイヤーを有効化 チャンネルレイヤーを使用するためにバックエンドにRedisを使用します。Redisを使用するためにDockerを起動します。 以下のコマンドを実行してRedisを起動しま […]

Posted on 26th 6月 2019 by press

Django

DjangoとChannelsで簡単なチャットサーバーを構築(2)

前回からの続きです。 ルームビューを作成 chat > templates > chat > room.htmlを作成します。 ルームビューを表示するためのviewを作成します。 ルームビューへのurl […]

Posted on 25th 6月 2019 by press

Django

DjangoとChannelsで簡単なチャットサーバーを構築(1)

こちらのチュートリアルと同じ内容です。https://channels.readthedocs.io/en/latest/tutorial/index.html 環境 Python 3.7.0Django 2.2.2ch […]

Posted on 22nd 6月 2019 by press

Python

Beautiful Soupでoptionタグのvalueを取得する

Beautiful Soupで以下のようなHTMLのoptionタグのvalueを取得する方法です。 optionタグのvalueの値を取得する方法 soup = soup.find_all('option')optio […]

Posted on 15th 6月 2019 by press

View Latest Posts
Django

ダウンロードするファイルの文字コードを動的に変更


press
ダウンロードするファイルの文字コードを動的に変更
Posted on 2nd 12月 2019 by press
2024年度 インターンシップ 募集開始

ダウンロードするファイルの文字コードを動的に変更

ウェブアプリケーションの中でCSVやテキストファイルをダウンロードさせた時に文字化けが発生する事があります。使用する文字コードが決まっていれば予め固定してしまう事で文字化けは防げますが、端末やOSが異なる環境で不特定多数が利用する場合にはクライアントに合わせて動的に文字コードを変更する必要があります。その際にクライアントのUserAgentからOSやブラウザ環境を取得して適切な文字コードでダウンロードさせる方法です。

UserAgentからOSやブラウザ環境を取得

Djangoでは以下のコードでクライアントのUserAgentが取得できます。

user_agent = request.META['HTTP_USER_AGENT']

取得したクライアントのUserAgentを表示してみると以下の様にクライアントのOSやヴァージョン、ブラウザの種類などが取得できています

Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15

動的に文字コードを変換

def file_charset(request):
    user_agent = request.META['HTTP_USER_AGENT']
    if 'Windows' in user_agent:
        response = HttpResponse(content_type='text/csv; charset=Shift-JIS')
    else:
        response = HttpResponse(content_type='text/csv;')

    response['Content-Disposition'] = 'attachment; filename="{}"'.format(urllib.parse.quote(file_name))

    df.to_csv(path_or_buf=response, sep=',', float_format='%.2f', index=True, decimal=",")

    return response

user_agent = request.META['HTTP_USER_AGENT']
クライアントのUserAgentを取得します。

if 'Windows' in user_agent:
クライアントのUserAgentがWindowsの場合にはcharsetをShift-JISに設定します。(デフォルトはUTF-8)

response['Content-Disposition'] = 'attachment; filename="{}"'.format(urllib.parse.quote(file_name))
attachmentをつける事で表示せずにダウンロードが始まります。

df.to_csv(path_or_buf=response, sep=',', float_format='%.2f', index=True, decimal=",")
CSVに書き出します。

ファントムYouTubeチャンネル

株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    press
    • charset
    • Share Article:
    • Twitter
    • Facebook
    • Pinterest
    • LinkedIn
    • Reddit
    Show Comments (0)

    Comments

    Cancel Reply

    コメントを投稿するにはログインしてください。

    Related Articles

    Python

    PythonからDeepLのAPIを使って翻訳

    PythonからDeepLのAPIを使って翻訳 最先端のAI技術を使った世界最高レベルの機械翻訳のDeepLをAPIで操作します。deeplのライブラリを使うとPythonで書く通常のPOSTのコードよりも記述量を少なく […]

    Posted on 11th 11月 2022 by press
    Python

    WordCloudを導入した

    WordCloudとは 文章に頻出する単語を抽出して画像に出力するシステムのこと。 実装について 形態素分析 まず形態素分析する必要がある。最新の形態素分析はJUMAN++なのでそれを導入すべし。 インストールするのは簡 […]

    Posted on 24th 5月 2022 by EIGHT