使用vscode打造python開發環境

使用vscode打造python開發環境

?1. 各位看客,因為本人寫的文章,有時候會修改,以便變得更好,更優秀,所以當你看到文章中前后有一些不對應的地方,那說明我正在大幅度修改。我一般會在一天內完成本次的修改。

?2. 新增一個vscode遠程開發,使用遠程服務器上的python開發環境。在第19條那里。


1.安裝python解釋器,配置好path變量。

下載網址:https://www.python.org/downloads/release/python-374/

注意區分64位還是32位的。

安裝python的時候,建議將python添加到path環境變量的復選框勾上,并且使用自定義安裝,因為可以自定義安裝目錄,我是安裝在C:\Python37中的

2.安裝virtualenv

win+R輸入cmd后點確定,然后執行:

pipinstallvirtualenv


3.下載并安裝好vscode編輯器(安裝時,將復選框全部勾上)

下載地址:https://code.visualstudio.com/

4.在vscode中安裝python插件

按下快捷鍵Ctrl+Shift+X,進入插件管理頁面

在搜索框中搜索python關鍵字

點擊下載量最高的那個進行安裝,一般都是第一個。

vscode安裝了上面這個插件后,能干什么?

第一:這個插件不是python語言的解釋器,vscode想要運行python代碼,必須另外指定在windows上安裝的python解釋器路徑才可以。

第二:這個插件被安裝上后,vscode就具有了調用python解釋器的功能。其實就是在setting.json和launch.json這兩個配置文件中,可以添加python相關的配置了,比如通過python.pythonPath的值找到python解釋器的位置等等。

第三:可以通過按下ctrl鍵,點擊函數,打開函數的所在文件和定義位置。

第四:具有代碼提示功能。

(這樣解釋是不是有點傻?)

5.準備一個項目并用vscode打開

第一步:創建一個總項目目錄

D:\CodeProjects

第二步:創建一個python總項目目錄

D:\CodeProjects\PythonProjects

第三步:創建一個測試項目目錄

D:\CodeProjects\PythonProjects\opms

第四步:在指定項目中創建python虛擬環境

win+R輸入cmd后點確定,依次執行下面三條命令:(-p后面的參數,可以換成其它python解釋器的路徑)

D:

cd D:\CodeProjects\PythonProjects\opms

virtualenv .venv -p"C:\Python37\python.exe"


第五步:右擊opms項目目錄,使用vscode打開(一般情況下,一個vscode界面只能打開一個項目目錄)

6.為項目運行時指定特定的python解釋器

第一步:為新打開的項目生成setting.json配置文件

按下快捷鍵ctrl+shift+p,輸入interpreter,單擊篩選出來的結果“Python: Select Interpreter",就會跳出windows系統上已經安裝的所有python解釋器,我們這里隨便選擇一個即可,因為我們之后會自定義setting.json配置文件中的值,這一步只是為了生成setting.json這個配置文件。

補充:你如果和我一樣,在打開項目之前已經在項目中創建了python虛擬環境,那么在選擇interpreter時,vscode也會將本項目目錄下的虛擬環境中的python解釋器也列出來,此時,你可以直接選擇這個解釋器即可。

第二步:修改setting.json配置文件,指定python.pythonPath的值為opms項目目錄下python虛擬環境中的python解釋器路徑

7.為項目運行時指定入口文件和參數

第一步:為新打開的項目生成launch.json配置文件

點擊Debug,點擊Add Configuration,點擊Python,然后根據你的項目,在Python File、Django、Flask中選擇一個,我這里只是為了說明,選擇Python File,你們請根據自己的項目類型的進行選擇。

第二步:解釋launch.json配置文件中configurations列表的作用

program這個鍵,用來指定項目運行時的入口文件的,其中${file}表示當前文件,${workspaceFolder}表示項目根目錄,對于django項目來說,入口文件應該是項目根目錄下的manage.py文件,所以可以配置為"program": "${workspaceFolder}\\manage.py"。

args這個鍵,用來指定項目運行時,跟在入口文件后面的參數,對于django項目來說,運行參數應該是:runserver?0.0.0.0:8080?--noreload?--nothreading? ,所以可以配置為:

"args":["runserver","0.0.0.0:8080","--noreload","--nothreading"] 。

name這個鍵,用來命名配置名稱的,因為在configurations列表中可以定義多個配置,不同的配置命名要相互區分。

type和request這兩個鍵是必須項,在不同的配置中都要存在的,而它們的值也是固定的。"type": "python" ,?"request": "launch"。

8.測試一下

在項目目錄中,創建一個test.py文件,寫入代碼后,點擊文件上方的綠色三角形按鈕運行當前文件。

之所以能夠點擊按鈕就可以運行當前文件,是因為我使用了Python File這個configurations運行配置,參數"program":?"${file}",表示當前文件。

有時候vscode會報錯如下:

無法加載文件 D:\CodeProjects\PythonProjects\opms\.venv\Scripts\activate.ps1,因為在此系統上禁止運行腳本。

解決辦法:

第一步:以管理員身份運行powershell

第二步:執行:get-ExecutionPolicy,回復Restricted,表示狀態是禁止的。

第三步:執行:set-ExecutionPolicy RemoteSigned

第四步:選擇Y,回車。

9.關于python虛擬環境的解釋

python虛擬環境是一個非常好用的東西,以前我以為只有activate激活這個虛擬環境,才可以使用這個虛擬環境中安裝的各個模塊?,F在,我知道之前的認知是局限的。

其實,你只需要使用虛擬環境中的python.exe解釋器的絕對路徑就可以使用這個虛擬環境中安裝的python模塊了,根本不需要激活。不信的話,你試試:

比如我創建了一個venv虛擬環境:D:\CodeProjects\PythonProjects\opms\.venv\

然后,我運行下面的命令得到的模塊列表和全局解釋器中的模塊列表是不一樣的(此時我并沒有激活這個虛擬環境):

D:\CodeProjects\PythonProjects\opms\.venv\Scripts\pip? ?list

當使用activate激活一個虛擬環境時,我們就從cmd或者terminal當前窗口中進入到了一個子窗口中了,在這個子窗口中,PATH這個環境變量被臨時更改了,當前這個虛擬環境中的Scripts路徑就被加入到PATH環境變量中了,那么我們在這個子窗口中運行的python命令、pip命令等也就通過PATH這個環境變量自動查找,然后指向了虛擬環境Scripts目錄中的解釋器了,這也就解釋了為何激活了這個虛擬環境,在這個窗口中切換到任何一個目錄中,執行python或者pip命令都能使用和查看這個虛擬環境的所有模塊的原因。

10.配置django項目的運行參數

一般我們運行django項目的命令是:? ?python manage.py runserver 0.0.0.0:8080

這個命令分為兩部分,第一部分是python解釋器,我們在settings.json設置,剩下的參數manage.py runserver 0.0.0.0:8080我們需要在launch.json中設置。

我粘貼出我在launch.json文件中設置的內容:

"configurations": [

? ? ? ? {

? ? ? ? ? ? "name":"Python: Current File",

? ? ? ? ? ? "type":"python",

? ? ? ? ? ? "request":"launch",

? ? ? ? ? ? "program":"${file}",

? ? ? ? ? ? "console":"integratedTerminal"? ? ? ? },

? ? ? ? {

? ? ? ? ? ? "name":"Python: Django",

? ? ? ? ? ? "type":"python",

? ? ? ? ? ? "request":"launch",

? ? ? ? ? ? "program":"${workspaceFolder}\\manage.py",

? ? ? ? ? ? "console":"integratedTerminal",

? ? ? ? ? ? "args":[

? ? ? ? ? ? ? ? "runserver",

? ? ? ? ? ? ? ? "0.0.0.0:8080",

? ? ? ? ? ? ? ? "--noreload",

? ? ? ? ? ? ? ? "--nothreading"? ? ? ? ? ? ],

? ? ? ? ? ? "django":true? ? ? ? }

? ? ]

此時如果要運行django項目的話,方法如下:

點擊左邊欄目中的小烏龜,

點擊齒輪圖標旁邊的下拉框,選擇Python: Django,

然后點擊左邊綠色三角形的運行按鈕即可。

11.配置vscode的文件圖標和主題美化

按下快捷鍵Ctrl+Shift+X,進入插件管理頁面

在搜索框中搜索這兩個插件并安裝:Material Icon Theme 和 Son of Obsidian Theme

然后點擊左下角的齒輪圖標,選擇并點擊File Icon Theme,在出現的展示中,選擇并點擊Material Icon Theme即可。

?此時,我們就會發現我們的python文件的圖標已經變成了經典的頭尾相接的兩條蟒蛇了。

?12.安裝運行代碼片段插件Code Runner(我已棄用它,原因在下面)

Code Runner也稱為萬能語言運行環境,它可以讓你不用搭建各種語言的開發環境,直接通過此插件就可以直接運行對應語言的代碼。我們這里使用這個插件,目的是為了運行代碼片段,方面調試。

按下快捷鍵Ctrl+Shift+X,進入插件管理頁面,在搜索框中搜索Code Runner,點擊安裝即可。

測試一下:

我們先選中一段代碼,然后鼠標右擊,選擇Run Code,如下:


?我們卸載掉這個插件吧。

經過測試,這個插件是使用系統PATH環境變量中配置的python解釋器去運行代碼片段的,并不能使用我們在settings.json文件中指定的python解釋器,如下:

所以卸載掉它吧,我們uninstall這個插件后,有時候還需要點擊這個插件旁邊的Reload Required進行重載才能徹底清除這個插件,如下:

?當然,我們也找到了方法去解決這個解釋器的問題,但又何必使用這個Code Runner呢?解決方法如下:

點擊File,點擊Preferences,點擊Settings,點擊Extensions,點擊Run Code configuration,點擊Executor Map下方的Edit in settings.json,在打開的settings.json文件中,添加:

"code-runner.executorMap",不要復制它,要自己敲擊,根據提示回車后,會自動生成剩下的內容,如下:

然后我們需要更改其中的python鍵值,改為"python":?"C:\\Python27\\python.exe",大家參照這個,可以自行更改為其它的python解釋器路徑,比如虛擬環境中python解釋器。

我們再運行test.py看下python解釋器版本:


?我不推薦的原因是,如果反復的切換運行不同的項目,那么就需要反復的更改settings.json文件,比較麻煩,而我們一開始安裝的python插件,只需要一次配置就可以了。


?13.啟用自動格式化代碼工具yapf

第一步:在項目指定的python解釋器中安裝yapf模塊

cd D:\CodeProjects\PythonProjects\opms\.venv\Scripts

activate

pip install yapf

deactivate.bat

第二步:在項目中的settings.json配置文件中,添加:"python.formatting.provider":?"yapf",如下:

第三步:按Alt+Shift+F即可自動格式化代碼

?測試一下:

未經代碼格式化之前的代碼如下:

?按Alt+Shift+F后,代碼如下:

14.啟用pylint進行代碼編寫時格式規范檢查

第一步:在項目指定的python解釋器中安裝pylint模塊

cd D:\CodeProjects\PythonProjects\opms\.venv\Scripts

activate

pip install pylint

deactivate.bat

第二步:啟用pylint功能,在settings.json文件中添加:"python.linting.pylintEnabled": true,如下:

第三步:關于pylint檢查項的一些定制

"python.linting.pylintArgs":?["--disable=C,broad-except,unused-variable",],


檢查項按大類分,大約有四個:C、R、E、W,C類應該是與變量、函數名等命名有關的規范,我們把C類檢查全部禁用,E類應該是檢查模塊、類、函數等是否存在,這個是最有用的,W類應該是與聲明的變量是否被使用、使用的異常捕捉類是否細化等檢查相關,這個可以根據具體的情況具體禁用。R類還不太清楚。


那么如何禁用具體的檢查項呢?

首先,我們將鼠標停留在報出異常的代碼上,如下:

?然后,就可以看到異常是unused-variable了,我們將這個異常檢查項在settings.json中禁用掉即可。其它的異常檢查項也是這么查看和禁用。


第四步:Django項目需要安裝額外的規范檢查模塊

pipinstallpylint_django

第五步:在settings.json配置文件中為django項目添加加載檢查模塊

"python.linting.pylintArgs": [

"--load-plugins",

"pylint_django",

],

?15.記錄一下vscode中的一些快捷鍵

終止程序運行:ctrl + `

側邊欄顯示和隱藏:ctrl + B

格式化代碼:Alt+Shift+F

格式化選中部分的代碼:Ctrl + K Ctrl + F

打開Git可視管理:Ctrl + Shift + G

補充:

格式化代碼的快捷鍵用起來太麻煩了,將它更改為常用的ctrl+alt+l(L的小寫)的方式。

按ctrl+k? ctrl+s打開快捷鍵修改的界面,搜索框中搜索shift+alt+f,快速定位到要修改的快捷鍵:

修改完成后,如下所示,記得更換搜索關鍵詞:


16.新建python文件時自動添加頭部信息

第一步:

點擊File,點擊Preferences,點擊User Snippets,輸入python,點擊跳出來的"python.json(Python)",在打開的python.json文件中,先清空文件原內容,然后添加:

請看:下面的內容,適合python2,在python3中,請將#!/usr/bin/python3(或者用虛擬環境中的python解釋器)和#encoding:utf-8替換對應位置的內容。

{

? ? "HEADER":{

? ? ? ? "prefix":"header",

? ? ? ? "body": [

? ? ? ? "#!/usr/bin/python",

? ? ? ? "# -*- encoding: utf-8 -*-",

? ? ? ? "'''",

? ? ? ? "@File? ? :? $TM_FILENAME",

? ? ? ? "@Time? ? :? $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",

? ? ? ? "@Author? :? DesignerA ",

? ? ? ? "@Version :? 1.0",

? ? ? ? "@Contact :? DesignerA@qq.com",

? ? ? ? "@WebSite :? www.cnblogs.com/DesignerA",

? ? ? ? "'''",

? ? ? ? "# Start typing your code from here",

? ? ? ? "$0"? ? ],

? ? }?

}

第二步:

在新建的python文件開頭輸入header,然后回車,就會自動出現上面定義的頭部信息了(我已經替換對應位置的內容為python3了),如下:


17.vscode配置git管理代碼

第一步:先到git官網下載并安裝windows 64位版的git,git官網下載地址:https://git-scm.com/downloads,注意,安裝Git的過程中,選擇VS Code作為git的默認編輯器,其它都默認即可,如下圖:

第二步:為git配置環境變量,默認情況下,git被安裝在C:\Program Files\Git\目錄下,我們需要將這個目錄下的bin目錄添加到Path環境變量中。如下圖

第三步:設置vscode與git關聯,依次打開:File -> Preferences? -> Settings? -> Extensions? -> Git? ->Path (Edit in settings.json)

在打開的settings.json文件中,配置git的可執行文件路徑,如下:

//啟用git"git.enabled":true, //啟用自動刷新"git.autorefresh":true,//啟用自動提取"git.autofetch":true,//同步前進行確認"git.confirmSync":true,//配置git可執行文件路徑"git.path":"C:\\Program Files\\Git\bin\\git.exe","terminal.integrated.shell.windows":"C:\\Program Files\\Git\\bin\\bash.exe",

第四步:配置git用戶名與郵箱(git暫存時需要用到它們)

git config --global user.name"xxxxxxx"git config --global user.email"xxxxxxx@qq.com"

第五步:在github上新建一個倉庫,然后使用命令git clone "倉庫地址" ,將倉庫克隆到本地目錄中。?如果是私有倉庫,這步執行后,會要求你輸入github賬戶密碼。

第六步:讓git記住密碼,這樣不用每次都填寫

git config --global credential.helper store

第七步:找到git下來的倉庫目錄,然后右擊目錄,選擇使用vscode打開

第八步:你編輯這個項目中的文件后,你要先點擊小勾暫存所有更改,輸入你的提交消息(隨便輸點你本次提交的說明信息)

說明:這里的commit并不是提交到github,而是提交到本地的暫存區,而且必須要先提交到本地的暫存區,之后才可以使用push將暫存區中的內容推送到github倉庫中。

?第九步:將更改提交到github倉庫中,從圖中可以看到第八步執行完后,本次的更改已經寫入到暫存區了。點擊Push后,可以到github倉庫中看下倉庫中的內容是否已經更改


18.vscode添加瀏覽器預覽html代碼功能

?第一步:按下快捷鍵Ctrl+Shift+X,進入插件管理頁面,搜索并安裝插件open in browser

?第二步:修改vscode預覽html文件默認使用的瀏覽器,不修改的話,默認使用IE。當然,這一步可以不執行,因為右擊html文件的時候可以選擇Open In Other Browers

依次打開:File -> Preferences? -> Settings? -> Extensions? -> plugin open-in-brower? ->Auto Complete:Extra Paths?(Edit in settings.json)然后在打開的settings.json配置文件中添加:

//如果是火狐,就設置firefox

"

open-in-browser.default":"chrome",

?19.vscode利用遠程服務器環境調試項目

這個還是很好用的,可以不需要在windows服務器上安裝python執行環境了。而且,python中的一些與系統操作相關的模塊,windows上安裝起來也非常麻煩。

第一步:按下快捷鍵Ctrl+Shift+X,進入插件管理頁面,搜索并安裝插件Remote Development

第二步:windows上安裝openssh客戶端,這里提供一個使用powershell安裝的方法

首先,以管理員身份打開powershell

然后,輸入命令在線查詢可獲取的安裝包?Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

最后,如果狀態顯示NotPresent的話,可以使用命令進行安裝,命令為Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

提示:隨著 Windows 10 2018 年 4 月更新的發布,OpenSSH 客戶端已正式推出并在 Windows 10 中默認安裝。

補充:有些人的電腦系統可能是windows7的,這里再提供一個在windows7上安裝openssh客戶端的方法

首先,下載cygwin,下載網址為:https://www.cygwin.com/


然后,安裝它,安裝過程中,當出現選擇要安裝的包時,我們將View切換為Full,并在搜索框中搜索openssh,在出現的搜索結果中,我們將openssh中的skip改為8.1p1-1,然后再點擊下一步完成安裝。如下圖,下圖中因為我已經安裝過了,所以openssh這里沒有顯示skip:


?再然后,我們需要將Cygwin安裝目錄下的bin目錄的絕對路徑添加到Path環境變量中。Cygwin默認的安裝路徑為:C:\cygwin64,所以我們需要將C:\cygwin64\bin添加到Path環境變量中,如下圖所示:


?最后,驗證一下。我們打開cmd,輸入ssh回車看看是否有輸出,有輸出信息就表示openssh客戶端安裝成功了:

備注:這個Cygwin軟件被安裝上后,不但可以使用ssh客戶端了,另外很多linux上的命令我們也都可以在cmd中使用了,比如ls和pwd等。原因就是這些命令工具都被提供在C:\cygwin64\bin目錄下。你可以到這個目錄下看看。挺好的軟件,給個大大的贊。

第三步:準備一臺centos虛擬機或者ubuntu虛擬機,確保虛擬機上的ssh server服務已經開啟,并允許遠程連接。比如我準備的是centos7虛擬機,IP地址為192.168.247.133

第四步:按下快捷鍵ctrl+shift+p? 搜索Remote-SSH:Settings,在打開的頁面中,點擊Edit in settings.json,在其中添加"remote.SSH.showLoginTerminal":?true,如下圖:

第五步:點擊左下角的綠色圖標,選擇Remote-SSH:Connect to Host? 然后點擊 Configure SSH Hosts? 然后選擇點第一個config,默認應該是一個空白的文件,在其中添加如下的配置:

Host Centos7.5_python3

? ? HostName 192.168.247.133? ? Port 22? ? User root

備注:其中Host后面的名稱,可以隨便命名,HostName后面的IP地址是準備的虛擬機IP地址,Port后跟的是ssh server服務監聽的端口號,默認是22,User后跟的是遠程連接的用戶名,我這里使用超級用戶連接。

這里補充一點:

每次連接遠程服務器,打開項目都要輸入一次密碼,是否很煩?(當然我并沒有覺得煩)如果有人覺得煩的話,可以先在本地windows系統和遠程服務器之間做好ssh免密登陸,然后在上面這個config文件中,在User配置下一行(縮進和User要一致),添加IdentityFile C:\Users\...\.ssh\id_rsa即可,其中IdentityFile參數后面跟的是windows上的rsa私鑰文件。

第六步:點擊vscode左邊欄的遠程連接圖標,如下:

第七步:點擊配置后的遠程虛擬機名稱旁邊的那個按鈕,輸入密碼進行登陸到服務器上,如下:

備注,如果vscode初次連接這臺虛擬機的話,那么需要等待幾分鐘,因為vscode要做一些初始化工作。

第八步:連上虛擬機后,可以通過下圖中標識的順序打開遠程服務器上的項目,當然每次打開項目都是需要再次輸入密碼的。這也是為了安全考慮。

在打開的項目中新建文件,刪除文件,修改文件等操作,不需要再次輸入密碼。

第九步:運行項目或測試腳本的方法

感覺這個功能,在一定程度上,都可以代替secure crt或xshell遠程連接工具和ftp上傳下載客戶端了。很強大。

補充:

沒有語法檢查,代碼自動提示和補全功能,開發真的是一個很難受的事情,那么怎么在遠程服務器上使用這些功能呢?下面就是補全這一點的方法:

首先:按下快捷鍵Ctrl+Shift+X,進入插件管理頁面,搜索python,然后,點擊Install in SSH:Centos7.5_python3,如下圖:

然后:在打開的項目中,生成launch.json和settings.json這兩個配置文件,方法在最上面,和配置windows本地開發環境一樣,我們在settings.json中配置一個遠程服務器上的python解釋器,如下圖:

最后:運行python文件的方法

第十步:重新打開遠程服務器上項目的方法

點擊File,點擊Close Folder,這個操作,會重新連接服務器。

也沒找到其它的方法,就這么做吧。

版權聲明:博客園博主DesignerA的原創文章,轉載請附上原文出處鏈接及本聲明。

轉載原文鏈接:https://www.cnblogs.com/DesignerA/p/11604200.html

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374