亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【Python】驗證碼

系統 1846 0

我們都知道驗證碼是一張圖片,這樣程序自動識別的難度大,安全性高。

設計到圖片,先來看一下img標簽里的src屬性,也是實現驗證碼的一個小原理

我們都知道src屬性可以直接把圖片拿過來:
比如說拿到本地的圖片 就在直接可以顯示在頁面上

那它是怎么實現的呢?

其實src屬性同樣像服務端發送了一個請求,Django服務端接收到之后,自動把本地文件讀取并返回給了客戶端,就實現了上面的效果

下面來自己實現一下:
html: #src屬性是一個url,
對應處理函數:

            
              
                def
              
              
                tu2
              
              
                (
              
              request
              
                )
              
              
                :
              
              
    f
              
                =
              
              
                open
              
              
                (
              
              
                "static/timg.jpg"
              
              
                ,
              
              
                "rb"
              
              
                )
              
              
    data
              
                =
              
              f
              
                .
              
              read
              
                (
              
              
                )
              
              
    f
              
                .
              
              close
              
                (
              
              
                )
              
              
                return
              
               HttpResponse
              
                (
              
              data
              
                )
              
            
          

如此就能發現兩者效果相同。

下面開始講驗證碼:
先貼上借鑒的博客,內含需要的文件:
https://blog.csdn.net/weixin_42100915/article/details/80851474

先生成驗證碼效果:
后臺處理函數:

            
              
                def
              
              
                yanzhengma
              
              
                (
              
              request
              
                )
              
              
                :
              
              
    f
              
                =
              
               BytesIO
              
                (
              
              
                )
              
              
                #創建生成一個內存地址
              
              
    img
              
                ,
              
               code
              
                =
              
              create_validate_code
              
                (
              
              
                )
              
              
                #生成驗證碼, code是驗證碼文字內容,img是驗證碼對象
              
              
                print
              
              
                (
              
              code
              
                )
              
              
    img
              
                .
              
              save
              
                (
              
              f
              
                ,
              
              
                "PNG"
              
              
                )
              
              
                #把驗證碼寫入內存地址
              
              
                return
              
               HttpResponse
              
                (
              
              f
              
                .
              
              getvalue
              
                (
              
              
                )
              
              
                )
              
              
                #把驗證碼從內存中讀出來并返回給客戶端
              
              
                def
              
              
                register
              
              
                (
              
              request
              
                )
              
              
                :
              
              
                return
              
               render
              
                (
              
              request
              
                ,
              
              
                "register.html"
              
              
                )
              
            
          

HTML

            
              
                
                  
                    <
                  
                  body
                
                
                  >
                
              
              
                
                  
                    <
                  
                  form
                
                
                  action
                
                
                  
                    =
                  
                  
                    "
                  
                  
                    "
                  
                
                
                  >
                
              
              
                
                  
                    form
                  
                  
                    >
                  
                
                
                  
                    
                      <
                    
                    p
                  
                  
                    >
                  
                
                用戶名
                
                  
                    
                      <
                    
                    input
                  
                  
                    type
                  
                  
                    
                      =
                    
                    
                      "
                    
                    text
                    
                      "
                    
                  
                  
                    placeholder
                  
                  
                    
                      =
                    
                    
                      "
                    
                    請輸入用戶名
                    
                      "
                    
                  
                  
                    >
                  
                
                
                  
                    
                      p
                    
                    
                      >
                    
                  
                  
                    
                      
                        <
                      
                      p
                    
                    
                      >
                    
                  
                  密碼              
                  
                    
                      
                        <
                      
                      input
                    
                    
                      type
                    
                    
                      
                        =
                      
                      
                        "
                      
                      text
                      
                        "
                      
                    
                    
                      placeholder
                    
                    
                      
                        =
                      
                      
                        "
                      
                      請輸入密碼
                      
                        "
                      
                    
                    
                      >
                    
                  
                  
                    
                      
                        p
                      
                      
                        >
                      
                    
                    
                      
                        
                          <
                        
                        p
                      
                      
                        >
                      
                    
                    確認密碼
                    
                      
                        
                          <
                        
                        input
                      
                      
                        type
                      
                      
                        
                          =
                        
                        
                          "
                        
                        text
                        
                          "
                        
                      
                      
                        placeholder
                      
                      
                        
                          =
                        
                        
                          "
                        
                        請確認密碼
                        
                          "
                        
                      
                      
                        >
                      
                    
                    
                      
                        
                          p
                        
                        
                          >
                        
                      
                      
                        
                          
                            <
                          
                          p
                        
                        
                          >
                        
                      
                      驗證碼
                      
                        
                          
                            <
                          
                          input
                        
                        
                          type
                        
                        
                          
                            =
                          
                          
                            "
                          
                          text
                          
                            "
                          
                        
                        
                          placeholder
                        
                        
                          
                            =
                          
                          
                            "
                          
                          請輸入驗證碼
                          
                            "
                          
                        
                        
                          >
                        
                      
                      
                        
                          
                            <
                          
                          img
                        
                        
                          src
                        
                        
                          
                            =
                          
                          
                            "
                          
                          /yanzhengma
                          
                            "
                          
                        
                        
                          alt
                        
                        
                          
                            =
                          
                          
                            "
                          
                          
                            "
                          
                        
                        
                          >
                        
                      
                      
                        
                          
                            p
                          
                          
                            >
                          
                        
                        
                          
                            
                              body
                            
                            
                              >
                            
                          
                        
                      
                    
                  
                
              
            
          

下面上完整代碼:帶驗證功能和點擊刷新功能

處理函數:

            
              
                def
              
              
                yanzhengma
              
              
                (
              
              request
              
                )
              
              
                :
              
              
                '''生成驗證碼'''
              
              
    f
              
                =
              
               BytesIO
              
                (
              
              
                )
              
              
                #創建生成一個內存地址
              
              
    img
              
                ,
              
               code
              
                =
              
              create_validate_code
              
                (
              
              
                )
              
              
                #生成驗證碼, code是驗證碼文字內容,img是驗證碼對象
              
              
                print
              
              
                (
              
              code
              
                )
              
              
    img
              
                .
              
              save
              
                (
              
              f
              
                ,
              
              
                "PNG"
              
              
                )
              
              
                #把驗證碼寫入內存地址
              
              
    request
              
                .
              
              session
              
                [
              
              
                "check_code"
              
              
                ]
              
              
                =
              
              code   
              
                #對應驗證用的
              
              
                return
              
               HttpResponse
              
                (
              
              f
              
                .
              
              getvalue
              
                (
              
              
                )
              
              
                )
              
              
                #把驗證碼從內存中讀出來并返回給客戶端
              
              
                def
              
              
                register
              
              
                (
              
              request
              
                )
              
              
                :
              
              
                """業務函數"""
              
              
                if
              
               request
              
                .
              
              method 
              
                ==
              
              
                "GET"
              
              
                :
              
              
                return
              
               render
              
                (
              
              request
              
                ,
              
              
                "register.html"
              
              
                )
              
              
                else
              
              
                :
              
              
        check
              
                =
              
              request
              
                .
              
              POST
              
                .
              
              get
              
                (
              
              
                "check"
              
              
                ,
              
              
                None
              
              
                )
              
              
        check_code
              
                =
              
              request
              
                .
              
              session
              
                [
              
              
                "check_code"
              
              
                ]
              
              
                if
              
               check
              
                ==
              
              check_code
              
                :
              
              
                return
              
               HttpResponse
              
                (
              
              
                "注冊成功"
              
              
                )
              
            
          

HTML

            
              
              
              
                
                  
                    <
                  
                  html
                
                
                  lang
                
                
                  
                    =
                  
                  
                    "
                  
                  en
                  
                    "
                  
                
                
                  >
                
              
              
                
                  
                    <
                  
                  head
                
                
                  >
                
              
              
                
                  
                    <
                  
                  meta
                
                
                  charset
                
                
                  
                    =
                  
                  
                    "
                  
                  UTF-8
                  
                    "
                  
                
                
                  >
                
              
              
                
                  
                    <
                  
                  title
                
                
                  >
                
              
              Title
              
                
                  
                    title
                  
                  
                    >
                  
                
                
                  
                    
                      head
                    
                    
                      >
                    
                  
                  
                    
                      
                        <
                      
                      body
                    
                    
                      >
                    
                  
                  
                    
                      
                        <
                      
                      form
                    
                    
                      action
                    
                    
                      
                        =
                      
                      
                        "
                      
                      /register/
                      
                        "
                      
                    
                    
                      method
                    
                    
                      
                        =
                      
                      
                        "
                      
                      post
                      
                        "
                      
                    
                    
                      >
                    
                  
                  
    {% csrf_token %}

                  
                    
                      
                        <
                      
                      p
                    
                    
                      >
                    
                  
                  用戶名
                  
                    
                      
                        <
                      
                      input
                    
                    
                      type
                    
                    
                      
                        =
                      
                      
                        "
                      
                      text
                      
                        "
                      
                    
                    
                      placeholder
                    
                    
                      
                        =
                      
                      
                        "
                      
                      請輸入用戶名
                      
                        "
                      
                    
                    
                      >
                    
                  
                  
                    
                      
                        p
                      
                      
                        >
                      
                    
                    
                      
                        
                          <
                        
                        p
                      
                      
                        >
                      
                    
                    密碼
                    
                      
                        
                          <
                        
                        input
                      
                      
                        type
                      
                      
                        
                          =
                        
                        
                          "
                        
                        text
                        
                          "
                        
                      
                      
                        placeholder
                      
                      
                        
                          =
                        
                        
                          "
                        
                        請輸入密碼
                        
                          "
                        
                      
                      
                        >
                      
                    
                    
                      
                        
                          p
                        
                        
                          >
                        
                      
                      
                        
                          
                            <
                          
                          p
                        
                        
                          >
                        
                      
                      確認密碼
                      
                        
                          
                            <
                          
                          input
                        
                        
                          type
                        
                        
                          
                            =
                          
                          
                            "
                          
                          text
                          
                            "
                          
                        
                        
                          placeholder
                        
                        
                          
                            =
                          
                          
                            "
                          
                          請確認密碼
                          
                            "
                          
                        
                        
                          >
                        
                      
                      
                        
                          
                            p
                          
                          
                            >
                          
                        
                        
                          
                            
                              <
                            
                            p
                          
                          
                            >
                          
                        
                        驗證碼
                        
                          
                            
                              <
                            
                            input
                          
                          
                            type
                          
                          
                            
                              =
                            
                            
                              "
                            
                            text
                            
                              "
                            
                          
                          
                            placeholder
                          
                          
                            
                              =
                            
                            
                              "
                            
                            請輸入驗證碼
                            
                              "
                            
                          
                          
                            name
                          
                          
                            
                              =
                            
                            
                              "
                            
                            check
                            
                              "
                            
                          
                          
                            >
                          
                        
                        
                          
                            
                              <
                            
                            img
                          
                          
                            src
                          
                          
                            
                              =
                            
                            
                              "
                            
                            /yanzhengma/
                            
                              "
                            
                          
                          
                            alt
                          
                          
                            
                              =
                            
                            
                              "
                            
                            
                              "
                            
                          
                          
                            id
                          
                          
                            
                              =
                            
                            
                              "
                            
                            check
                            
                              "
                            
                          
                          
                            >
                          
                        
                        
                          
                            
                              p
                            
                            
                              >
                            
                          
                          
                            
                              
                                <
                              
                              input
                            
                            
                              type
                            
                            
                              
                                =
                              
                              
                                "
                              
                              submit
                              
                                "
                              
                            
                            
                              value
                            
                            
                              
                                =
                              
                              
                                "
                              
                              注冊
                              
                                "
                              
                            
                            
                              >
                            
                          
                          
                            
                              
                                form
                              
                              
                                >
                              
                            
                            
                              
                                
                                  <
                                
                                script
                              
                              
                                >
                              
                            
                            
                              
    document
                              
                                .
                              
                              
                                getElementById
                              
                              
                                (
                              
                              
                                "check"
                              
                              
                                )
                              
                              
                                .
                              
                              
                                onclick
                              
                              
                                =
                              
                              
                                function
                              
                              
                                (
                              
                              
                                )
                              
                              
                                {
                              
                              
                                this
                              
                              
                                .
                              
                              src
                              
                                =
                              
                              
                                this
                              
                              
                                .
                              
                              src
                              
                                +
                              
                              
                                "?"
                              
                              
                                //點一次就加一個問號,會重新發送一次請求
                              
                              
                                }
                              
                            
                            
                              
                                
                                  script
                                
                                
                                  >
                                
                              
                              
                                
                                  
                                    body
                                  
                                  
                                    >
                                  
                                
                                
                                  
                                    
                                      html
                                    
                                    
                                      >
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          

效果圖:
【Python】驗證碼_第1張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人网在线免费观看 | a一级毛片免费高清在线 | 久热这里只精品热在线观看 | 日韩精品一区二区三区中文字幕 | 精品一区二区三区在线视频观看 | 香蕉人人超人人超免费看视频 | 欧美成人精品一级高清片 | 国产成人18黄网站麻豆 | 婷婷六月天激情 | 91色多多 | 精品一区二区三区中文 | 波多野结衣精品中文字幕 | 国产一级α片 | 国产精品资源在线 | 国产精品成人69xxx免费视频 | 国产午夜永久福利视频在线观看 | 亚洲欧美国产精品专区久久 | 久久国产精品久久国产精品 | 婷婷春色| 久久精品日本免费线 | 99九九精品国产高清自在线 | 亚洲综合色婷婷中文字幕 | 日日影院 | 精品福利视频第一 | 国产精品资源在线观看 | 天天操天天操天天操香蕉 | 一本大道香蕉大在线最新 | 亚洲婷婷综合色高清在线 | 亚洲图片天堂 | 国内视频自拍 | 国产凹凸在线一区二区色老头 | 亚洲国产欧洲综合997久久 | 亚洲视频在线精品 | 国产亚洲精品国产一区 | 99久久99久久久精品齐齐鬼色 | 成人国产视频在线观看 | 国产综合欧美日韩视频一区 | 欧美一级性视频 | 99久久久免费精品免费 | 亚洲欧美久久精品 | 国产亚洲欧美日韩综合另类 |