pythonはQRコードレコードを生成する

12359 ワード

前の仕事はすでにこの问题をしたことがあって、今また出会って、ブログを出したことがないことを発见して、ここは整理して、后ろで使いやすいです.
なぜQRコードを生成する問題が使われるのですか?ここでは私が今やっているプロジェクトで説明することができます.私は友達を招待してappをインストールするページを作りますが、前に招待したQRコードは固定されていて、ユーザーが手動で招待コードを記入しなければ固定できません.これっぽっちのユーザー体験は悪いですが、ホームページにログインしても、うまく保存できません.ユーザーは必ずしも私たちのappをダウンロードするとは限らず、他の人の登録を手伝うだけです.どうやって解決しますか?招待コードを外して、直接ダイナミックQRコードをつけます.ダイナミックQRコードには直接ユーザーの情報を追加し、他のユーザーが直接画像をスキャンし、自分の情報を識別できるものを入力すると、バインド関係を確立し、appをダウンロードし、appに登録に成功した後、本当にバインド関係を確立し、奨励金を受け取ることができます.いろいろと工夫したほうがいいから、ほかにもっといい解決策があるかもしれない.
import qrcode
def make_code(self, message):
      qr = qrcode.QRCode(
          version=None,
          error_correction=qrcode.constants.ERROR_CORRECT_H,
          box_size=10,
          border=4,
      )
      qr.add_data(message)
      color_list = ["black", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chocolate","darkslateblue",
                    "cornflowerblue", "crimson", "darkblue", "darkcyan", "darkgoldenrod", "darkgreen", "darkkhaki",
                    "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkmagenta", "coral",
                    "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue",
                    "dimgray", "dimgrey", "dodgerblue", "firebrick", "forestgreen", "fuchsia", "gold", "goldenrod",
                    "gray", "grey", "green", "hotpink", "indianred", "indigo", "lawngreen", "lightblue", "lightcoral",
                    "lightgreen", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray",
                    "lightslategrey", "limegreen", "magenta", "maroon", "mediumaquamarine", "mediumblue",
                    "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "teal",
                    "mediumturquoise", "mediumvioletred", "midnightblue", "navy", "olive", "red", "olivedrab",
                    "orange", "orangered", "orchid", "palevioletred", "peru", "purple", "rosybrown",
                    "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "sienna", "skyblue", "slateblue",
                    "slategray", "slategrey", "steelblue", "tan", "tomato", "turquoise", "violet"]
      random_color = random.choice(color_list)
      img = qr.make_image(fill_color=random_color, back_color="white")
      stream = StringIO.StringIO()
      img.save(stream, "PNG")
      return u"data:image/png;base64," + base64.b64encode(stream.getvalue()).decode("ascii")