Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 久久婷婷影院,久久伊人电影,成人在免费观看视频国产

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          python爬蟲(chóng):常見(jiàn)的登陸方式

          見(jiàn)的登錄方式有以下兩種:

          1. 查看登錄頁(yè)面,csrf,cookie;授權(quán);cookie
          2. 直接發(fā)送post請(qǐng)求,獲取cookie

          上面只是簡(jiǎn)單的描述,下面是詳細(xì)的針對(duì)兩種登錄方式的時(shí)候爬蟲(chóng)的處理方法

          第一種情況

          這種例子其實(shí)也比較多,現(xiàn)在很多網(wǎng)站的登錄都是第一種的方法,這里通過(guò)以github為例子:

          分析頁(yè)面

          獲取authenticity_token信息

          我們都知道登錄頁(yè)面這里都是一個(gè)form表單提交,我可以可以通過(guò)谷歌瀏覽器對(duì)其進(jìn)行分析

          如上圖我們找到了這個(gè)token信息

          所以我們?cè)诘卿浿皯?yīng)該先通過(guò)代碼訪問(wèn)這個(gè)登錄頁(yè)面獲取這個(gè)authenticity_token信息

          獲取登陸頁(yè)面的cookie信息

          set-cookie這里是登錄頁(yè)面的cookie

          分析登錄包獲取提交地址

          當(dāng)我們輸入用戶名和密碼之后點(diǎn)擊提交,我們可以從包里找到如上圖的地址,就是post請(qǐng)求提交form的信息

          請(qǐng)求的地址:https://github.com/session

          請(qǐng)求的參數(shù)有:

          "commit": "Sign in",

          "utf8":"?",

          "authenticity_token":“KM6Q0mM9FtI95wYsI/WU3BnaMbYrmV60c0YTQlZjBuAuYa193LP2Gd8BTCmQBSFvPFZRlk3/1TFOnOgGUdy7Ig==”,

          "login":"hjzhaofan@163.com",

          "password":"123"

          從這里我們也可以看出提交參數(shù)中的“authenticity_token”,而這個(gè)參數(shù)就是需要我們從登陸頁(yè)面先獲取到。

          當(dāng)我們登錄成功后:

          再次訪問(wèn)github,這個(gè)時(shí)候cookie里就增加了兩個(gè)cookie信息,而這個(gè)信息是登錄后在增加的信息

          所以如果我們想要通過(guò)程序登錄,我們就需要在登錄成功后再次獲取cookie信息

          然后通過(guò)這個(gè)cookie去訪問(wèn)我們github的其他信息例如我們的個(gè)人信息設(shè)置頁(yè)面:

          https://github.com/settings/profile

          代碼實(shí)現(xiàn)

          下面代碼實(shí)現(xiàn)了登錄并訪問(wèn)https://github.com/settings/repositories

          import requests
          from bs4 import BeautifulSoup
          Base_URL = "https://github.com/login"
          Login_URL = "https://github.com/session"
          def get_github_html(url):
           '''
           這里用于獲取登錄頁(yè)的html,以及cookie
           :param url: https://github.com/login
           :return: 登錄頁(yè)面的HTML,以及第一次的cooke
           '''
           response = requests.get(url)
           first_cookie = response.cookies.get_dict()
           return response.text,first_cookie
          def get_token(html):
           '''
           處理登錄后頁(yè)面的html
           :param html:
           :return: 獲取csrftoken
           '''
           soup = BeautifulSoup(html,'lxml')
           res = soup.find("input",attrs={"name":"authenticity_token"})
           token = res["value"]
           return token
          def gihub_login(url,token,cookie):
           '''
           這個(gè)是用于登錄
           :param url: https://github.com/session
           :param token: csrftoken
           :param cookie: 第一次登錄時(shí)候的cookie
           :return: 返回第一次和第二次合并后的cooke
           '''
           data= {
           "commit": "Sign in",
           "utf8":"?",
           "authenticity_token":token,
           "login":"你的github賬號(hào)",
           "password":"*****"
           }
           response = requests.post(url,data=data,cookies=cookie)
           print(response.status_code)
           cookie = response.cookies.get_dict()
           #這里注釋的解釋一下,是因?yàn)橹癵ithub是通過(guò)將兩次的cookie進(jìn)行合并的
           #現(xiàn)在不用了可以直接獲取就行
           # cookie.update(second_cookie)
           return cookie
          if __name__ == '__main__':
           html,cookie = get_github_html(Base_URL)
           token = get_token(html)
           cookie = gihub_login(Login_URL,token,cookie)
           response = requests.get("https://github.com/settings/repositories",cookies=cookie)
           print(response.text)
          

          第二種情況

          這里通過(guò)伯樂(lè)在線為例子,這個(gè)相對(duì)于第一種就比較簡(jiǎn)單了,沒(méi)有太多的分析過(guò)程直接發(fā)送post請(qǐng)求,然后獲取cookie,通過(guò)cookie去訪問(wèn)其他頁(yè)面,下面直接是代碼實(shí)現(xiàn)例子:

          http://www.jobbole.com/bookmark/ 這個(gè)地址是只有登錄之后才能訪問(wèn)的頁(yè)面,否則會(huì)直接返回登錄頁(yè)面

          這里說(shuō)一下:http://www.jobbole.com/wp-admin/admin-ajax.php是登錄的請(qǐng)求地址這個(gè)可以在抓包里可以看到

          import requests
          def login():
           url = "http://www.jobbole.com/wp-admin/admin-ajax.php"
           data = {
           "action": "user_login",
           "user_login":"zhaofan1015",
           "user_pass": '******',
           }
           response = requests.post(url,data)
           cookie = response.cookies.get_dict()
           print(cookie)
           url2 ="http://www.jobbole.com/bookmark/"
           response2 = requests.get(url2,cookies=cookie)
           print(response2.text)
          login() 
          

          做什么事情都需要不斷地堅(jiān)持下去,編程也一樣。現(xiàn)在python語(yǔ)言十分火熱,職場(chǎng)對(duì)python的需求也很高,薪資待遇都很棒。所以希望大家能夠堅(jiān)持學(xué)習(xí),‘剩’者為王,堅(jiān)持下來(lái)的人才有資格稱(chēng)王。如果你覺(jué)得本文對(duì)你的學(xué)習(xí)有幫助的話,不妨點(diǎn)個(gè)關(guān)注,我會(huì)持續(xù)更新。

          網(wǎng)上爬取數(shù)據(jù)的時(shí)候通常需要注冊(cè)會(huì)員,然后登錄才能正常使用或下載數(shù)據(jù)。這些登錄的信息通常會(huì)存放在網(wǎng)站的cookie中。根據(jù)百度百科的定義,“Cookie 是一個(gè)保存在客戶機(jī)中的簡(jiǎn)單的文本文件, 這個(gè)文件與特定的 Web 文檔關(guān)聯(lián)在一起, 保存了該客戶機(jī)訪問(wèn)這個(gè)Web 文檔時(shí)的信息, 當(dāng)客戶機(jī)再次訪問(wèn)這個(gè) Web 文檔時(shí)這些信息可供該文檔使用。”

          為了方便自動(dòng)化爬取數(shù)據(jù),我們可以將網(wǎng)站的登錄信息的cookie存儲(chǔ)在本地文件中,然后下次登錄時(shí),直接加載cookies即可迅速實(shí)現(xiàn)登錄。在Python中,獲取網(wǎng)站cookie的辦法有好多種,這里簡(jiǎn)單介紹較常用的selenium庫(kù),調(diào)用瀏覽器驅(qū)動(dòng)程序獲取最新的cookie,并模擬網(wǎng)站自動(dòng)登錄。

          首先確保python成功安裝了selenium庫(kù),安裝命令如下:

          pip install selenium

          其次是要安裝對(duì)應(yīng)瀏覽器的驅(qū)動(dòng)程序,一般使用谷歌瀏覽器、火狐瀏覽器和Edge瀏覽器,它們對(duì)應(yīng)的驅(qū)動(dòng)程序分別為chromedriver.exe,geckodriver.exe,msedgedriver.exe,需要下載對(duì)應(yīng)瀏覽器版本的程序。例如我使用的谷歌瀏覽器版本為112.0.5615,我需要下載對(duì)應(yīng)版本的chromedriver.exe。具體安裝教程,可參考鏈接:https://www.bilibili.com/read/cv13873971

          一切準(zhǔn)備后就可以開(kāi)始編寫(xiě)代碼了,這里使用Anaconda的Jupyter編寫(xiě)運(yùn)行命令。先導(dǎo)入selenium庫(kù)以及json,os庫(kù),selenium用于啟動(dòng)瀏覽器,json用于將cookie轉(zhuǎn)存為json格式,os用于將文件保存在本地,time用于強(qiáng)制程序等待若干時(shí)間。

          from selenium import webdriver
          import json,os,time
          
          #選擇保存目錄
          outdir = r'F:\MyProject\09Medicine'
          
          #登錄的網(wǎng)址
          douban_url = 'https://www.douban.com/'
          
          #啟動(dòng)瀏覽器
          browser = webdriver.Chrome()
          
          #瀏覽器打開(kāi)網(wǎng)頁(yè)
          browser.get(douban_url)
          
          #等待30秒時(shí)間使你輸入登錄信息
          time.sleep(30)
          
          #瀏覽器登錄后獲取cookie
          cookies = browser.get_cookies()
          
          #將cookies保存在本地
          with open(os.path.join(outdir,'cookies.txt'),mode='w') as f:
          	f.write(json.dumps(cookies))
          
          #關(guān)閉瀏覽器
          browser.close()

          瀏覽器打開(kāi)豆瓣網(wǎng)首頁(yè)

          這樣即可將網(wǎng)站登錄信息保存在當(dāng)?shù)亓恕O麓蔚卿洉r(shí)可直接調(diào)用本地cookie文件實(shí)現(xiàn)自動(dòng)登錄了。

          #打開(kāi)保存的cookie文件
          with open(r'F:\MyProject\09Medicine\cookies.txt',mode='r') as f:
          	cookies_file = f.read()
          
          #將讀取的文件轉(zhuǎn)為json格式
          cookie_list = json.loads(cookies_file)
          
          #打開(kāi)瀏覽器
          browser = webdriver.Chrome()
          
          #輸入豆瓣網(wǎng)址
          page_url = 'https://www.douban.com'
          browser.get(page_url)
          
          #網(wǎng)頁(yè)加載cookie
          for cookie in cookie_list:
          	browser.add_cookie(cookie)
          
          #需要刷新網(wǎng)頁(yè)才能登錄
          browser.refresh()
          #再輸入一次網(wǎng)址即可顯示登錄成功
          browser.get(page_url)

          使用cookie登錄的豆瓣網(wǎng)首頁(yè)

          豆瓣網(wǎng)站的cookie反爬機(jī)制做得貌似比較好,一定時(shí)間后需要更新登錄的cookie才可重新自動(dòng)登錄。因此爬取的時(shí)候可定期更新cookie信息。


          、小程序端調(diào)用wx.login

          2、判斷用戶是否授權(quán)

          3、小程序端訪問(wèn) wx.getUserInfo

          4、小程序端js代碼:+

          當(dāng)然小編這里也準(zhǔn)備一份適合你的學(xué)習(xí)資料爬蟲(chóng) ,web開(kāi)發(fā)的學(xué)習(xí)資料視頻教程,私信小編“01”都可以免費(fèi)獲取!這些書(shū)籍都是可以私信小編“01”免費(fèi)領(lǐng)取的!

          wx.login({
           success: resp => {
           // 發(fā)送 res.code 到后臺(tái)換取 openId, sessionKey, unionId
           console.log(resp);
           var that = this;
           // 獲取用戶信息
           wx.getSetting({
           success: res => {
           if (res.authSetting['scope.userInfo']) {
           // 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱(chēng),不會(huì)彈框
           wx.getUserInfo({
           success: userResult => {
           var platUserInfoMap = {}
           platUserInfoMap["encryptedData"] = userResult.encryptedData;
           platUserInfoMap["iv"] = userResult.iv;
           wx.request({
          			 url: 'http://127.0.0.1:5000/user/wxlogin',
          			 data: {
          			 platCode: resp.code,
            platUserInfoMap: platUserInfoMap,
          			 },
          			 header: {
          			 "Content-Type": "application/json"
          			 },
          			 method: 'POST',
          			 dataType:'json',
          			 success: function (res) {
          			 console.log(res)
            	wx.setStorageSync("userinfo", res.userinfo) //設(shè)置本地緩存
          			 },
          			 fail: function (err) { },//請(qǐng)求失敗
          			 complete: function () { }//請(qǐng)求完成后執(zhí)行的函數(shù)
          			 })
           }
           })
           }
           }
           })
           }
           })

          5、后端服務(wù)器訪問(wèn)code2session,通過(guò)code2Session這個(gè)api接口來(lái)獲取真正需要的微信用戶的登錄態(tài) session_key 和 openid 和 unionid

          6、后端服務(wù)器校驗(yàn)用戶信息,對(duì) encryptedData 解密

          微信小程序登錄后獲得session_key后,返回了encryptedData,iv的數(shù)據(jù),其中encryptedData解密后包含了用戶的信息,解密后的json格式如下:

          {
           "openId": "OPENID",
           "nickName": "NICKNAME",
           "gender": GENDER,
           "city": "CITY",
           "province": "PROVINCE",
           "country": "COUNTRY",
           "avatarUrl": "AVATARURL",
           "unionId": "UNIONID",
           "watermark":
           {
           "appid":"APPID",
           "timestamp":TIMESTAMP
           }
          }

          7、新建解密文件——WXBizDataCrypt.py

          from Crypto.Cipher import AES 這邊一般會(huì)遇到 ModuleNotFoundError:No module named "Crypto" 錯(cuò)誤

          (1)執(zhí)行 pip3 install pycryptodome

          (2)如果還是提示沒(méi)有該模塊,那就虛擬環(huán)境目錄 Lib—-site-package 中查看是否有 Crypto文件夾,這時(shí)你應(yīng)該看到有 crypto 文件夾,將其重命名為 Crypto 即可

          import base64
          import json
          from Crypto.Cipher import AES
          
          class WXBizDataCrypt:
           def __init__(self, appId, sessionKey):
           self.appId = appId
           self.sessionKey = sessionKey
          
           def decrypt(self, encryptedData, iv):
           # base64 decode
           sessionKey = base64.b64decode(self.sessionKey)
           encryptedData = base64.b64decode(encryptedData)
           iv = base64.b64decode(iv)
          
           cipher = AES.new(sessionKey, AES.MODE_CBC, iv)
          
           decrypted = json.loads(self._unpad(cipher.decrypt(encryptedData)))
          
           if decrypted['watermark']['appid'] != self.appId:
           raise Exception('Invalid Buffer')
          
           return decrypted
          
           def _unpad(self, s):
           return s[:-ord(s[len(s)-1:])]

          8、Flask的 /user/wxlogin api代碼:

          import json,requests
          from WXBizDataCrypt import WXBizDataCrypt
          from flask import Flask
          
          @app.route('/user/wxlogin', methods=['GET','POST'])
          def user_wxlogin():
           data = json.loads(request.get_data().decode('utf-8')) # 將前端Json數(shù)據(jù)轉(zhuǎn)為字典
           appID = 'appID' # 開(kāi)發(fā)者關(guān)于微信小程序的appID
           appSecret = 'appSecret' # 開(kāi)發(fā)者關(guān)于微信小程序的appSecret
           code = data['platCode'] # 前端POST過(guò)來(lái)的微信臨時(shí)登錄憑證code
           encryptedData = data['platUserInfoMap']['encryptedData']
           iv = data['platUserInfoMap']['iv']
           req_params = {
           'appid': appID,
           'secret': appSecret,
           'js_code': code,
           'grant_type': 'authorization_code'
           }
           wx_login_api = 'https://api.weixin.qq.com/sns/jscode2session'
           response_data = requests.get(wx_login_api, params=req_params) # 向API發(fā)起GET請(qǐng)求
           resData = response_data.json()
           openid = resData ['openid'] # 得到用戶關(guān)于當(dāng)前小程序的OpenID
           session_key = resData ['session_key'] # 得到用戶關(guān)于當(dāng)前小程序的會(huì)話密鑰session_key
          
           pc = WXBizDataCrypt(appID, session_key) #對(duì)用戶信息進(jìn)行解密
           userinfo = pc.decrypt(encryptedData, iv) #獲得用戶信息
           print(userinfo)
           '''
           下面部分是通過(guò)判斷數(shù)據(jù)庫(kù)中用戶是否存在來(lái)確定添加或返回自定義登錄態(tài)(若用戶不存在則添加;若用戶存在,返回用戶信息)
          
           --------略略略略略略略略略-------------
          
           這部分我就省略啦,數(shù)據(jù)庫(kù)中對(duì)用戶進(jìn)行操作
           '''
          
           return json.dumps
          ({
          "code": 200, "msg": "登錄成功","userinfo":userinfo}, indent=4, sort_keys=True, default=str, ensure_ascii=False)

          總結(jié)

          到此這篇關(guān)于Python Flask微信小程序登錄詳解及登錄api實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python Flask微信小程序登錄詳解及登錄api實(shí)現(xiàn)內(nèi)容請(qǐng)搜索我們以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持我們!

          時(shí)間:2020-06-05

          Python的Flask框架中實(shí)現(xiàn)登錄用戶的個(gè)人資料和頭像的教程

          用戶資料頁(yè)面 在用戶資料頁(yè)面,基本上沒(méi)有什么特別要強(qiáng)調(diào)和介紹的新概念.只需要?jiǎng)?chuàng)建一個(gè)含有HTML的新視圖函數(shù)模板頁(yè)面即可. 下面是視圖函數(shù)(項(xiàng)目目錄/views.py): @app.route('/user/<nickname>') @login_required def user(nickname): user = User.query.filter_by(nickname = nickname).first() if user == None: flash('不存在用戶:' + nickn

          Python Flask 搭建微信小程序后臺(tái)詳解

          前言: 近期需要開(kāi)發(fā)一個(gè)打分的微信小程序,涉及到與后臺(tái)服務(wù)器的數(shù)據(jù)交互,因?yàn)闃I(yè)務(wù)邏輯相對(duì)簡(jiǎn)單,故選擇Python的輕量化web框架Flask來(lái)搭建后臺(tái)程序.因?yàn)槭浅醮谓佑|小程序,經(jīng)過(guò)一番摸索和嘗試,個(gè)人覺(jué)得的微信小程序與后臺(tái)的交互有點(diǎn)像ajax,所以有ajax開(kāi)發(fā)經(jīng)驗(yàn)的同學(xué)開(kāi)發(fā)小程序應(yīng)該很容易上手,因?yàn)楸疚闹刂v解后臺(tái)程序的搭建,所以,微信小程序的前端開(kāi)發(fā)將一筆帶過(guò),有興趣學(xué)習(xí)小程序前端語(yǔ)言的同學(xué)可移步網(wǎng)易云課堂的一套快速入門(mén)課程<輕松玩轉(zhuǎn)微信小程序>. 分三步講解微信小程序與Python后臺(tái)

          使用Python的Flask框架表單插件Flask-WTF實(shí)現(xiàn)Web登錄驗(yàn)證

          表單是讓用戶與我們的網(wǎng)頁(yè)應(yīng)用程序交互的基本元素.Flask 本身并不會(huì)幫助我們處理表單,但是 Flask-WTF 擴(kuò)展讓我們?cè)谖覀兊?Flask 應(yīng)用程序中使用流行的 WTForms 包.這個(gè)包使得定義表單和處理提交容易一些. Flask-WTF 我們想要使用 Flask-WTF 做的第一件事情(在安裝它以后,GitHub項(xiàng)目頁(yè):https://github.com/lepture/flask-wtf )就是在 myapp.forms 包中定義一個(gè)表單. # ourapp/forms.py fr

          Python的Flask框架中實(shí)現(xiàn)簡(jiǎn)單的登錄功能的教程

          回顧 在前面的系列章節(jié)中,我們創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)并且學(xué)著用用戶和郵件來(lái)填充,但是到現(xiàn)在我們還沒(méi)能夠植入到我們的程序中. 兩章之前,我們已經(jīng)看到怎么去創(chuàng)建網(wǎng)絡(luò)表單并且留下了一個(gè)實(shí)現(xiàn)完全的登陸表單. 在這篇文章中,我們將基于我門(mén)所學(xué)的網(wǎng)絡(luò)表單和數(shù)據(jù)庫(kù)來(lái)構(gòu)建并實(shí)現(xiàn)我們自己的用戶登錄系統(tǒng).教程的最后我們小程序會(huì)實(shí)現(xiàn)新用戶注冊(cè),登陸和退出的功能. 為了能跟上這章節(jié),你需要前一章節(jié)最后部分,我們留下的微博程序.請(qǐng)確保你的程序已經(jīng)正確安裝和運(yùn)行. 在前面的章節(jié),我們開(kāi)始配置我們將要用到的Flask擴(kuò)展.為了登

          python使用Flask操作mysql實(shí)現(xiàn)登錄功能

          用到的一些知識(shí)點(diǎn):Flask-SQLAlchemy.Flask-Login.Flask-WTF.PyMySQL 這里通過(guò)一個(gè)完整的登錄實(shí)例來(lái)介紹,程序已經(jīng)成功運(yùn)行,在未登錄時(shí)攔截了success.html頁(yè)面跳轉(zhuǎn)到登錄頁(yè)面,登錄成功后才能訪問(wèn)success. 以下是項(xiàng)目的整體結(jié)構(gòu)圖: 首先是配置信息,配置了數(shù)據(jù)庫(kù)連接等基本的信息,config.py DEBUG = True SQLALCHEMY_ECHO = False SQLALCHEMY_DATABASE_URI = 'mysql+pymy

          python實(shí)現(xiàn)網(wǎng)站用戶名密碼自動(dòng)登錄功能

          一.概述 公司需要通過(guò)網(wǎng)頁(yè)用戶認(rèn)證登錄實(shí)現(xiàn)上網(wǎng),網(wǎng)絡(luò)設(shè)備判斷當(dāng)前帳號(hào)12小時(shí)沒(méi)有沒(méi)上網(wǎng)將會(huì)自動(dòng)斷開(kāi)帳號(hào)上網(wǎng),每天早上上班第一件事就是打開(kāi)用戶認(rèn)證網(wǎng)頁(yè)輸入. 用戶名與密碼,有時(shí)候要家里通過(guò)teamview遠(yuǎn)程控制軟件連接公司電腦,想讓公司電腦24小時(shí)在線,最后通過(guò)python實(shí)現(xiàn)了自動(dòng)登錄. 代碼: #_*_ coding:utf-8 _*_ import requests,time s=requests.session() data = [ ('opr', 'pwdLogin'), ('user

          在Python程序中操作MySQL的基本方法

          Python操作Mysql 最近在學(xué)習(xí)python,這種腳本語(yǔ)言毫無(wú)疑問(wèn)的會(huì)跟數(shù)據(jù)庫(kù)產(chǎn)生關(guān)聯(lián),因此這里介紹一下如何使用python操作mysql數(shù)據(jù)庫(kù).我python也是零基礎(chǔ)學(xué)起,所以本篇博客針對(duì)的是python初學(xué)者,大牛可以選擇繞道. 另外,本篇基于的環(huán)境是Ubuntu13.10,使用的python版本是2.7.5. MYSQL數(shù)據(jù)庫(kù) MYSQL是一個(gè)全球領(lǐng)先的開(kāi)源數(shù)據(jù)庫(kù)管理系統(tǒng).它是一個(gè)支持多用戶.多線程的數(shù)據(jù)庫(kù)管理系統(tǒng),與Apache.PHP.Linux共同組成LAMP平臺(tái),在web應(yīng)

          python簡(jiǎn)單實(shí)現(xiàn)操作Mysql數(shù)據(jù)庫(kù)

          用python編寫(xiě)數(shù)據(jù)庫(kù)的代碼很方便,但是如果不想自己寫(xiě)sql語(yǔ)句,其實(shí)還有更多的討巧辦法.使用webpy的db庫(kù)就是不錯(cuò)的一個(gè)選擇.當(dāng)然為了使用webpy的db,之前你還需要安裝MySQLdb,其他的就不需要做什么了. 1.安裝MySQLdb庫(kù) sudo apt-get install python-MySQLdb 2.安裝webpy sudo apt-get install python-webpy 3.連接數(shù)據(jù)庫(kù) import web db = web.database(dbn='mysq

          python使用SQLAlchemy操作MySQL

          SQLAlchemy是Python編程語(yǔ)言下的一款開(kāi)源軟件,提供了SQL工具包及對(duì)象關(guān)系映射(ORM)工具,使用MIT許可證發(fā)行.SQLAlchemy首次發(fā)行于2006年2月,并迅速地在Python社區(qū)中最廣泛使用的ORM工具之一,不亞于Django的ORM框架. 本文將介紹如何使用SQLAlchemy操作MySQL,完成基礎(chǔ)的表創(chuàng)建,表格數(shù)據(jù)的新增.查詢.修改.刪除(CRUD)等操作. 首先我們需要確認(rèn)當(dāng)前的Python環(huán)境下已經(jīng)安裝sqlalchemy和pymysql模塊. 新建表格 我們使

          Java+mysql用戶注冊(cè)登錄功能

          最近剛剛開(kāi)始學(xué)習(xí)mysql,所以就寫(xiě)了這個(gè)很基本的用戶注冊(cè)登錄的功能來(lái)練練手.雖然這個(gè)很簡(jiǎn)單,但是我還是看到了自己學(xué)習(xí)的進(jìn)步,很開(kāi)心.哈哈哈. 這里要注意數(shù)據(jù)表的建立: 直接上代碼吧,里面注釋很詳細(xì)了. package client; import java.sql.*; import java.util.*; public class Client { /** * 用以實(shí)現(xiàn)用戶的注冊(cè)和登錄 */ private static String username;//用戶登錄注冊(cè)的姓名 privat

          Python的Flask框架中實(shí)現(xiàn)分頁(yè)功能的教程

          Blog Posts的提交 讓我們從簡(jiǎn)單的開(kāi)始.首頁(yè)上必須有一張用戶提交新的post的表單. 首先我們定義一個(gè)單域表單對(duì)象(fileapp/forms.py): class PostForm(Form): post = TextField('post', validators = [Required()]) 下面,我們把這個(gè)表單添加到template中(fileapp/templates/index.html): <!-- extend base layout --> {% extends &

          flask 框架操作MySQL數(shù)據(jù)庫(kù)簡(jiǎn)單示例

          本文實(shí)例講述了flask 框架操作MySQL數(shù)據(jù)庫(kù).分享給大家供大家參考,具體如下: 一.創(chuàng)建數(shù)據(jù)庫(kù)表格 """ Created on 19-10-8 @requirement:Anaconda 4.3.0 (64-bit) Python3.6 @description:創(chuàng)建表格 """ import pymysql server = '127.0.0.1' user = 'root' password = 'password' # 連接數(shù)據(jù)庫(kù)

          Python操作MySQL數(shù)據(jù)庫(kù)的三種方法總結(jié)

          1. MySQLdb 的使用 (1) 什么是MySQLdb? MySQLdb 是用于 Python 連接 MySQL 數(shù)據(jù)庫(kù)的接口,它實(shí)現(xiàn)了 Python 數(shù)據(jù)庫(kù) API 規(guī)范 V2.0,基于 MySQL C API 上建立的. (2) 源碼安裝 MySQLdb: https://pypi.python.org/pypi/MySQL-python $ tar zxvf MySQL-python-*.tar.gz $ cd MySQL-python-* $ python setup.py buil


          主站蜘蛛池模板: 亚洲中文字幕乱码一区| 中文字幕一区二区三区永久| 国产精品熟女一区二区| 韩国精品一区二区三区无码视频| 日本高清不卡一区| 国产成人精品一区二区三区| 韩国福利视频一区二区| 精品一区二区三区在线播放视频| 精品久久一区二区| 国模精品一区二区三区| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 制服丝袜一区二区三区| 高清一区二区在线观看| 国模无码一区二区三区| 中文字幕日韩精品一区二区三区| 国产一区二区女内射| 国产高清一区二区三区四区| 国产精品一区二区三区高清在线| 亚洲欧美日韩一区二区三区在线 | 久久久精品人妻一区二区三区四 | 动漫精品一区二区三区3d| 无码人妻aⅴ一区二区三区| 亚洲一区二区久久| 国产高清在线精品一区| 无码人妻一区二区三区免费| 亚洲日韩一区精品射精| 国产成人午夜精品一区二区三区| 国模无码一区二区三区| 日韩伦理一区二区| 日韩有码一区二区| 国产一区二区精品久久岳| 中文字幕一区在线播放| 日韩精品无码视频一区二区蜜桃| 日韩人妻无码一区二区三区综合部 | 亚洲综合av永久无码精品一区二区| 伊人色综合一区二区三区| 天堂资源中文最新版在线一区 | 日韩人妻无码一区二区三区综合部| 日韩一区二区电影| 老熟妇仑乱一区二区视頻| 欧美激情一区二区三区成人|