欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python和Django完成博客數(shù)據(jù)庫的遷移方法

 更新時間:2018年01月05日 14:23:38   作者:OliverkingLi的博客  
下面小編就為大家分享一篇使用python和Django完成博客數(shù)據(jù)庫的遷移方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

上一講完成了基本博客的配置和項目工程的生成。這次開始將博客一些基本的操作主要是數(shù)據(jù)庫方面學習。

1.設(shè)計博客數(shù)據(jù)庫表結(jié)構(gòu)

博客最主要的功能就是展示我們寫的文章,它需要從某個地方獲取博客文章數(shù)據(jù)才能把文章展示出來,通常來說這個地方就是數(shù)據(jù)庫。我們把寫好的文章永久地保存在數(shù)據(jù)庫里,當用戶訪問我們的博客時,Django 就去數(shù)據(jù)庫里把這些數(shù)據(jù)取出來展現(xiàn)給用戶。

博客的文章應(yīng)該含有標題、正文、作者、發(fā)表時間等數(shù)據(jù)。一個更加現(xiàn)代化的博客文章還希望它有分類、標簽、評論等。為了更好地存儲這些數(shù)據(jù),我們需要合理地組織數(shù)據(jù)庫的表結(jié)構(gòu)。

我們的博客初級版本主要包含博客文章,文章會有分類以及標簽。一篇文章只能有一個分類,但可以打上很多標簽。

文章 id 標題 正文 發(fā)表時間 分類 標簽
1 title 1 text 1 2016-12-23 Django Django 學習
2 title 2 text 2 2016-12-24 Django Django 學習
3 title 3 text 3 2016-12-26 Python Python 學習

其中文章 ID 是一個數(shù)字,唯一對應(yīng)著一篇文章。當然還可以有更多的列以存儲更多相關(guān)數(shù)據(jù),這只是一個最基本的示例。

數(shù)據(jù)庫表設(shè)計成這樣其實已經(jīng)可以了,但是稍微分析一下我們就會發(fā)現(xiàn)一個問題,這 3 篇文章的分類和標簽都是相同的,這會產(chǎn)生很多重復數(shù)據(jù),當數(shù)據(jù)量很大時就浪費了存儲空間。

不同的文章可能它們對應(yīng)的分類或者標簽是相同的,所以我們把分類和標簽提取出來,做成單獨的數(shù)據(jù)庫表,再把文章和分類、標簽關(guān)聯(lián)起來。下面分別是分類和標簽的數(shù)據(jù)庫表:

分類 id 分類名

1 Django
2 Python

標簽 id 標簽名

1 Django 學習
2 Python 學習

接下來就是編寫我們的數(shù)據(jù)庫模型:

以上是自然語言描述的表格,數(shù)據(jù)庫也和編程語言一樣,有它自己的一套規(guī)定的語法來生成上述的表結(jié)構(gòu),這樣我們才能把數(shù)據(jù)存進去。一般來說這時候我們應(yīng)該先去學習數(shù)據(jù)庫創(chuàng)建表格的語法,再回來寫我們的 Django 博客代碼了。但是 Django 告訴我們不用這么麻煩,它已經(jīng)幫我們做了一些事情。Django 把那一套數(shù)據(jù)庫的語法轉(zhuǎn)換成了 Python 的語法形式,我們只要寫 Python 代碼就可以了,Django 會把 Python 代碼翻譯成對應(yīng)的數(shù)據(jù)庫操作語言。用更加專業(yè)一點的說法,就是 Django 為我們提供了一套 ORM(Object Relational Mapping)系統(tǒng)。

例如我們的分類數(shù)據(jù)庫表,Django 只要求我們這樣寫:

blog/models.py
from django.db import models
class Category(models.Model):
 name = models.CharField(max_length=100)

給出完整的代碼:

from django.db import models
from django.contrib.auth.models import User
from django.utils.six import python_2_unicode_compatible

# python_2_unicode_compatible 裝飾器用于兼容 Python2
@python_2_unicode_compatible
class Category(models.Model):
 """
 Django 要求模型必須繼承 models.Model 類。
 Category 只需要一個簡單的分類名 name 就可以了。
 CharField 指定了分類名 name 的數(shù)據(jù)類型,CharField 是字符型,
 CharField 的 max_length 參數(shù)指定其最大長度,超過這個長度的分類名就不能被存入數(shù)據(jù)庫。
 當然 Django 還為我們提供了多種其它的數(shù)據(jù)類型,如日期時間類型 DateTimeField、整數(shù)類型 IntegerField 等等。
 Django 內(nèi)置的全部類型可查看文檔:
 https://docs.djangoproject.com/en/1.10/ref/models/fields/#field-types
 """
 name = models.CharField(max_length=100)
 def __str__(self):
 return self.name

@python_2_unicode_compatible
class Tag(models.Model):
 """
 標簽 Tag 也比較簡單,和 Category 一樣。
 再次強調(diào)一定要繼承 models.Model 類!
 """
 name = models.CharField(max_length=100)
 def __str__(self):
 return self.name

@python_2_unicode_compatible
class Post(models.Model):
 """
 文章的數(shù)據(jù)庫表稍微復雜一點,主要是涉及的字段更多。
 """
 # 文章標題
 title = models.CharField(max_length=70)
 # 文章正文,我們使用了 TextField。
 # 存儲比較短的字符串可以使用 CharField,但對于文章的正文來說可能會是一大段文本,因此使用 TextField 來存儲大段文本。
 body = models.TextField()
 # 這兩個列分別表示文章的創(chuàng)建時間和最后一次修改時間,存儲時間的字段用 DateTimeField 類型。
 created_time = models.DateTimeField()
 modified_time = models.DateTimeField()
 # 文章摘要,可以沒有文章摘要,但默認情況下 CharField 要求我們必須存入數(shù)據(jù),否則就會報錯。
 # 指定 CharField 的 blank=True 參數(shù)值后就可以允許空值了。
 excerpt = models.CharField(max_length=200, blank=True)
 # 這是分類與標簽,分類與標簽的模型我們已經(jīng)定義在上面。
 # 我們在這里把文章對應(yīng)的數(shù)據(jù)庫表和分類、標簽對應(yīng)的數(shù)據(jù)庫表關(guān)聯(lián)了起來,但是關(guān)聯(lián)形式稍微有點不同。
 # 我們規(guī)定一篇文章只能對應(yīng)一個分類,但是一個分類下可以有多篇文章,所以我們使用的是 ForeignKey,即一對多的關(guān)聯(lián)關(guān)系。
 # 而對于標簽來說,一篇文章可以有多個標簽,同一個標簽下也可能有多篇文章,所以我們使用 ManyToManyField,表明這是多對多的關(guān)聯(lián)關(guān)系。
 # 同時我們規(guī)定文章可以沒有標簽,因此為標簽 tags 指定了 blank=True。
 # 如果你對 ForeignKey、ManyToManyField 不了解,請看教程中的解釋,亦可參考官方文檔:
 # https://docs.djangoproject.com/en/1.10/topics/db/models/#relationships
 category = models.ForeignKey(Category)
 tags = models.ManyToManyField(Tag, blank=True)
 # 文章作者,這里 User 是從 django.contrib.auth.models 導入的。
 # django.contrib.auth 是 Django 內(nèi)置的應(yīng)用,專門用于處理網(wǎng)站用戶的注冊、登錄等流程,User 是 Django 為我們已經(jīng)寫好的用戶模型。
 # 這里我們通過 ForeignKey 把文章和 User 關(guān)聯(lián)了起來。
 # 因為我們規(guī)定一篇文章只能有一個作者,而一個作者可能會寫多篇文章,因此這是一對多的關(guān)聯(lián)關(guān)系,和 Category 類似。
 author = models.ForeignKey(User)
 def __str__(self):
 return self.title

Category 就是一個標準的 Python 類,它繼承了 models.Model 類,類名為 Category 。Category 類有一個屬性 name,它是 models.CharField 的一個實例。

這樣,Django 就可以把這個類翻譯成數(shù)據(jù)庫的操作語言,在數(shù)據(jù)庫里創(chuàng)建一個名為 category 的表格,這個表格的一個列名為 name。還有一個列 id,Django 則會自動創(chuàng)建??梢钥闯鰪?Python 代碼翻譯成數(shù)據(jù)庫語言時其規(guī)則就是一個 Python 類對應(yīng)一個數(shù)據(jù)庫表格,類名即表名,類的屬性對應(yīng)著表格的列,屬性名即列名。

我們需要 3 個表格:文章(Post)、分類(Category)以及標簽(Tag),下面就來分別編寫它們對應(yīng)的 Python 類。模型的代碼通常寫在相關(guān)應(yīng)用的 models.py 文件里。

二:遷移數(shù)據(jù)庫

為了讓 Django 完成翻譯,創(chuàng)建好這些數(shù)據(jù)庫表,我們再一次請出我的工程管理助手 manage.py。激活虛擬環(huán)境,切換到 manage.py 文件所在的目錄下,分別運行 python manage.py makemigrations 和 python manage.py migrate 命令:

注意:如果代碼中含有中文注釋,且你使用的是 Python 2 開發(fā)環(huán)境的話,會得到一個編碼錯誤。因此請在含有中文注釋的文件最開始處加入編碼聲明:# coding: utf-8。

當我們執(zhí)行了 python manage.py makemigrations 后,Django 在 blog 應(yīng)用的 migrations\ 目錄下生成了一個 0001_initial.py 文件,這個文件是 Django 用來記錄我們對模型做了哪些修改的文件。目前來說,我們在 models.py 文件里創(chuàng)建了 3 個模型類,Django 把這些變化記錄在了 0001_initial.py 里。

不過此時還只是告訴了 Django 我們做了哪些改變,為了讓 Django 真正地為我們創(chuàng)建數(shù)據(jù)庫表,接下來又執(zhí)行了 python manage.py migrate 命令。Django 通過檢測應(yīng)用中 migrations\ 目錄下的文件,得知我們對數(shù)據(jù)庫做了哪些操作,然后它把這些操作翻譯成數(shù)據(jù)庫操作語言,從而把這些操作作用于真正的數(shù)據(jù)庫。

你可以看到命令的輸出除了 Applying blog.0001_initial... OK 外,Django 還對其它文件做了操作。這是因為除了我們自己建立的 blog 應(yīng)用外,Django 自身還內(nèi)置了很多應(yīng)用,這些應(yīng)用本身也是需要存儲數(shù)據(jù)的??梢栽?settings.py 的 INSTALLED_APP 設(shè)置里看到這些應(yīng)用,當然我們目前不必關(guān)心這些。

blogproject/settings.py
INSTALLED_APPS = [
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'blog',
]

對于了解數(shù)據(jù)庫語言的人,你可以運行下面的命令看看 Django 究竟為我們做了什么:

python manage.py sqlmigrate blog 0001

你將看到輸出了經(jīng) Django 翻譯后的數(shù)據(jù)庫表創(chuàng)建語句,這有助于你理解 Django ORM 的工作機制。

三:選擇數(shù)據(jù)庫版本

沒有安裝任何的數(shù)據(jù)庫軟件,Django 就幫我們遷移了數(shù)據(jù)庫。這是因為我們使用了 Python 內(nèi)置的 SQLite3 數(shù)據(jù)庫。

SQLite3 是一個十分輕巧的數(shù)據(jù)庫,它僅有一個文件。你可以看一到項目根目錄下多出了一個 db.sqlite3 的文件,這就是 SQLite3 數(shù)據(jù)庫文件,Django 博客的數(shù)據(jù)都會保存在這個數(shù)據(jù)庫文件里。

Django 在 settings.py 里為我們做了一些默認的數(shù)據(jù)庫配置:

blogproject/settings.py
## 其它配置選項...
DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.sqlite3',
 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 }
}
## 其它配置選項...

可以看到默認的數(shù)據(jù)庫引擎就是使用的 SQLite3。

當然一些人傾向于使用 MySQL 等大型數(shù)據(jù)庫,至于 Django 如何配置 MySQL 這里就不贅述了,你可以自行使用搜索引擎或者查閱 Django 的官方文檔解決。對于一個小型博客而言,SQLite3 數(shù)據(jù)庫足以勝任。

四:用Django方式操作數(shù)據(jù)庫

數(shù)據(jù)庫最主要的操作就是往里面存入數(shù)據(jù)、從中取出數(shù)據(jù)、修改已保存的數(shù)據(jù)和刪除不再需要的數(shù)據(jù)。和創(chuàng)建數(shù)據(jù)庫表一樣,Django 為這些操作提供了一整套方法,從而把我們從數(shù)據(jù)庫語言中解放出來。我們不用學習如何利用數(shù)據(jù)庫語言去完成這些操作,只要簡單地調(diào)用幾個 Python 函數(shù)就可以滿足我們的需求。

存數(shù)據(jù)

先在命令行中來探索一下這些函數(shù),感受一下如何用 Django 的方式來操作數(shù)據(jù)庫。在 manage.py 所在目錄下運行 python manage.py shell 命令:

創(chuàng)建一個分類和一個標簽:

首先導入 3 個之前寫好的模型類,然后實例化了一個 Category 類和一個 Tag 類,為他們的屬性 name 賦了值。為了讓 Django 把這些數(shù)據(jù)保存進數(shù)據(jù)庫,調(diào)用實例的 save 方法即可。

再創(chuàng)建一篇文章試試,但創(chuàng)建文章之前,我們需要先創(chuàng)建一個 User,用于指定文章的作者。創(chuàng)建 User 的命令 Django 已經(jīng)幫我們寫好了,依然是通過 manage.py 來運行。首先按住 Ctrl + c 退出命令交互欄(一次退不出就連續(xù)多按幾次),運行 python manage.py createsuperuser 命令并根據(jù)提示創(chuàng)建用戶:

(密碼過于簡單會通不過)

再次運行 python manage.py shell 進入 Python 命令交互欄,開始創(chuàng)建文章:

由于我們重啟了 shell,因此需要重新導入了 Category、TagPost 以及 User。我們還導入了一個 Django 提供的輔助模塊 timezone,這是因為我們需要調(diào)用它的 now() 方法為 created_timemodified_time 指定時間,容易理解 now 方法返回當前時間。然后我們根據(jù)用戶名和分類名,通過 get 方法取出了存在數(shù)據(jù)庫中的 UserCategory(取數(shù)據(jù)的方法將在下面介紹)。接著我們?yōu)槲恼轮付?titlebody 、created_timemodified_time值,并把它和前面創(chuàng)建的 Category 以及 User 關(guān)聯(lián)了起來。允許為空 excerpt、tags 我們就沒有為它們指定值了。

注意:我們這里使用 get 方法根據(jù) Categoryname 屬性的值獲取分類的一條記錄。Category.objects.get(name='category test') 的含義是從數(shù)據(jù)庫中取出 name 的值為 category test 的分類記錄。確保數(shù)據(jù)庫中只有一條值為 category test 的記錄,否則 get 方法將返回一個 MultipleObjectsReturned 異常。如果你不小心已經(jīng)存了多條記錄,請刪掉多余的記錄。如何刪除數(shù)據(jù)請看下文。

取數(shù)據(jù)

數(shù)據(jù)已經(jīng)存入數(shù)據(jù)庫了,現(xiàn)在要把它們?nèi)〕鰜砜纯矗?/span>

objects 是我們的模型管理器,它為我們提供一系列從數(shù)據(jù)庫中取數(shù)據(jù)方法,這里我們使用了 all 方法,表示我們要把對應(yīng)的數(shù)據(jù)全部取出來??梢钥吹?all 方法都返回了數(shù)據(jù),這些數(shù)據(jù)應(yīng)該是我們之前存進去的,但是顯示的字符串有點奇怪,無法看出究竟是不是我們之前存入的數(shù)據(jù)。為了讓顯示出來的數(shù)據(jù)更加人性化一點,我們?yōu)?3 個模型分別增加一個 __str__ 方法:

from django.db import models
from django.contrib.auth.models import User
from django.utils.six import python_2_unicode_compatible

# python_2_unicode_compatible 裝飾器用于兼容 Python2
@python_2_unicode_compatible
class Category(models.Model):
 """
 Django 要求模型必須繼承 models.Model 類。
 Category 只需要一個簡單的分類名 name 就可以了。
 CharField 指定了分類名 name 的數(shù)據(jù)類型,CharField 是字符型,
 CharField 的 max_length 參數(shù)指定其最大長度,超過這個長度的分類名就不能被存入數(shù)據(jù)庫。
 當然 Django 還為我們提供了多種其它的數(shù)據(jù)類型,如日期時間類型 DateTimeField、整數(shù)類型 IntegerField 等等。
 Django 內(nèi)置的全部類型可查看文檔:
 https://docs.djangoproject.com/en/1.10/ref/models/fields/#field-types
 """
 name = models.CharField(max_length=100)
 def __str__(self):
 return self.name

@python_2_unicode_compatible
class Tag(models.Model):
 """
 標簽 Tag 也比較簡單,和 Category 一樣。
 再次強調(diào)一定要繼承 models.Model 類!
 """
 name = models.CharField(max_length=100)
 def __str__(self):
 return self.name

@python_2_unicode_compatible
class Post(models.Model):
 """
 文章的數(shù)據(jù)庫表稍微復雜一點,主要是涉及的字段更多。
 """
 # 文章標題
 title = models.CharField(max_length=70)
 # 文章正文,我們使用了 TextField。
 # 存儲比較短的字符串可以使用 CharField,但對于文章的正文來說可能會是一大段文本,因此使用 TextField 來存儲大段文本。
 body = models.TextField()
 # 這兩個列分別表示文章的創(chuàng)建時間和最后一次修改時間,存儲時間的字段用 DateTimeField 類型。
 created_time = models.DateTimeField()
 modified_time = models.DateTimeField()
 # 文章摘要,可以沒有文章摘要,但默認情況下 CharField 要求我們必須存入數(shù)據(jù),否則就會報錯。
 # 指定 CharField 的 blank=True 參數(shù)值后就可以允許空值了。
 excerpt = models.CharField(max_length=200, blank=True)
 # 這是分類與標簽,分類與標簽的模型我們已經(jīng)定義在上面。
 # 我們在這里把文章對應(yīng)的數(shù)據(jù)庫表和分類、標簽對應(yīng)的數(shù)據(jù)庫表關(guān)聯(lián)了起來,但是關(guān)聯(lián)形式稍微有點不同。
 # 我們規(guī)定一篇文章只能對應(yīng)一個分類,但是一個分類下可以有多篇文章,所以我們使用的是 ForeignKey,即一對多的關(guān)聯(lián)關(guān)系。
 # 而對于標簽來說,一篇文章可以有多個標簽,同一個標簽下也可能有多篇文章,所以我們使用 ManyToManyField,表明這是多對多的關(guān)聯(lián)關(guān)系。
 # 同時我們規(guī)定文章可以沒有標簽,因此為標簽 tags 指定了 blank=True。
 # 如果你對 ForeignKey、ManyToManyField 不了解,請看教程中的解釋,亦可參考官方文檔:
 # https://docs.djangoproject.com/en/1.10/topics/db/models/#relationships
 category = models.ForeignKey(Category)
 tags = models.ManyToManyField(Tag, blank=True)
 # 文章作者,這里 User 是從 django.contrib.auth.models 導入的。
 # django.contrib.auth 是 Django 內(nèi)置的應(yīng)用,專門用于處理網(wǎng)站用戶的注冊、登錄等流程,User 是 Django 為我們已經(jīng)寫好的用戶模型。
 # 這里我們通過 ForeignKey 把文章和 User 關(guān)聯(lián)了起來。
 # 因為我們規(guī)定一篇文章只能有一個作者,而一個作者可能會寫多篇文章,因此這是一對多的關(guān)聯(lián)關(guān)系,和 Category 類似。
 author = models.ForeignKey(User)
 def __str__(self):
 return self.title

定義好 __str__ 方法后,解釋器顯示的內(nèi)容將會是 __str__ 方法返回的內(nèi)容。這里 Category 返回分類名 name ,Tag 返回標簽名,而 Post 返回它的 title

python_2_unicode_compatible 裝飾器用于兼容 Python2。如果你使用的 Python3 開發(fā)環(huán)境,去掉這個裝飾器不會有任何影響。如果你使用的 Python2 開發(fā)環(huán)境,而又不想使用這個裝飾器,則將 __str__ 方法改為 __unicode__ 方法即可。

先按 Ctrl + c 退出 Shell,再重新運行 python manage.py shell 進入 Shell。

改數(shù)據(jù):

首先通過 get 方法根據(jù)分類名 name 獲取值為 category test 到分類,修改它的 name 屬性為新的值 category test new,然后調(diào)用 save 方法把修改保存到數(shù)據(jù)庫,之后可以看到數(shù)據(jù)庫返回的數(shù)據(jù)已經(jīng)是修改后的值了。Tag、Post的修改也一樣。

刪除數(shù)據(jù):

先根據(jù)標題 title 的值從數(shù)據(jù)庫中取出 Post,保存在變量 p 中,然后調(diào)用它的delete 方法,最后看到 Post.objects.all() 返回了一個空的 QuerySet(類似于一個列表),表明數(shù)據(jù)庫中已經(jīng)沒有 Post,Post 已經(jīng)被刪除了。

這就是 Django 對數(shù)據(jù)庫增、刪、改、查的操作。除了上述演示的方法外,Django 還為我們提供了大量其它的方法,這些方法有一部分會在教程中使用,用到時我會講解它們的用法。但以后你開發(fā)自己的項目時,你就需要通過閱讀 Django 的官方文檔 來了解有哪些方法可用以及如何使用它們。

以上這篇使用python和Django完成博客數(shù)據(jù)庫的遷移方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python光學仿真學習處理高斯光束分布圖像

    Python光學仿真學習處理高斯光束分布圖像

    這篇文章主要為大家介紹了Python光學仿真學習之如何處理高斯光束的分布圖像,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • 解決Django數(shù)據(jù)庫makemigrations有變化但是migrate時未變動問題

    解決Django數(shù)據(jù)庫makemigrations有變化但是migrate時未變動問題

    今天小編就為大家分享一篇解決Django數(shù)據(jù)庫makemigrations有變化但是migrate時未變動的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python 修改CSV文件實例詳解

    Python 修改CSV文件實例詳解

    這篇文章主要為大家介紹了Python 修改CSV文件實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Python利用pywin32實現(xiàn)自動操作電腦

    Python利用pywin32實現(xiàn)自動操作電腦

    在windows系統(tǒng)上,重復性的操作可以用Python腳本來完成,其中常用的模塊是win32gui、win32con、win32api,要使用這三個模塊需要先安裝pywin32。本文就為大家介紹了如何利用這些模塊實現(xiàn)自動操作電腦,感興趣的可以了解一下
    2022-11-11
  • Python3.5裝飾器典型案例分析

    Python3.5裝飾器典型案例分析

    這篇文章主要介紹了Python3.5裝飾器,結(jié)合實例形式分析了裝飾器修飾有參數(shù)函數(shù)、裝飾器修飾函數(shù)參數(shù)等情況相關(guān)使用技巧,需要的朋友可以參考下
    2019-04-04
  • Python?列表中的刪除操作之del、remove?和?pop?的區(qū)別

    Python?列表中的刪除操作之del、remove?和?pop?的區(qū)別

    在Python中,列表(list)是一種非常靈活的數(shù)據(jù)結(jié)構(gòu),它允許我們存儲一系列的元素,在刪除元素時,我們可以使用三種不同的方法:del、remove?和?pop,每種方法都有其特定的用途和行為,了解它們的區(qū)別可以幫助我們更有效地使用列表,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Python 中使用 Selenium 單擊網(wǎng)頁按鈕功能

    Python 中使用 Selenium 單擊網(wǎng)頁按鈕功能

    Selenium是一個用于測試網(wǎng)站的自動化測試工具,支持各種瀏覽器包括Chrome、Firefox、Safari等主流界面瀏覽器,同時也支持phantomJS無界面瀏覽器,本篇文章將介紹如何在 Python 中使用 selenium 單擊網(wǎng)頁上的按鈕,感興趣的朋友一起看看吧
    2023-11-11
  • 利用PyCharm操作Github(倉庫新建、更新,代碼回滾)

    利用PyCharm操作Github(倉庫新建、更新,代碼回滾)

    這篇文章主要介紹了利用PyCharm操作Github(倉庫新建、更新,代碼回滾),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Python實現(xiàn)的文軒網(wǎng)爬蟲完整示例

    Python實現(xiàn)的文軒網(wǎng)爬蟲完整示例

    這篇文章主要介紹了Python實現(xiàn)的文軒網(wǎng)爬蟲,結(jié)合完整實例形式分析了Python爬蟲爬取文軒網(wǎng)圖書信息的相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • Django nginx配置實現(xiàn)過程詳解

    Django nginx配置實現(xiàn)過程詳解

    這篇文章主要介紹了Django nginx配置實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09

最新評論