Django打造大型企業官網-項目部署

Django打造大型企業官網-項目部署


?一、準備工作

1、在開發機上的準備工作

 1)確認項目沒有bug。
 2)打開終端,進入虛擬環境,再 cd 到項目根目錄下,執行命令:pip freeze > requirements.txt,將當前環境的包導出到`requirements.txt`文件中,方便在部署的時候安裝。

 

 3)將項目上傳到服務器上的`/srv`目錄下。這里以`git`的形式為例。

?  我們使用第三方代碼托管平臺 -碼云 Gitee

  

 選擇碼云作為代碼托管平臺的原因是因為在碼云上傳項目代碼,即使是私有項目也不會被收費。

 碼云官網:https://gitee.com/

? 將項目上傳到服務器上:

  3.1)在服務器中新建倉庫/項目:

?   

  3.2)將本地項目代碼提交到服務器中:

   

  git 相關操作:

# 本地項目代碼 → 本地 git 倉庫 → 服務器倉庫

git init    # 初始化本地倉庫

git remote add origin xxx.git   # 關聯遠程倉庫,xxx.git:分為兩種:SSH跟HTTPS,建議使用第一種方式

git add .         # 將本地項目的所有文件都預集合在一起,類似于打包
git commit -m "first commit !"   # 將本地代碼添加到倉庫,與 "git add ." 結合執行

git pull origin master --allow-unrelated-histories   # 從遠程(服務器)的 master 中拉取代碼下來,如果不是第一次拉代碼,可以不用加后面的參數

git push origin master   # 確定沒問題后,將本地倉庫代碼上傳到服務器項目倉庫中

git status  # 查看狀態

? 如果在拉取遠程代碼或提交代碼到遠程時報錯:

  

 在 git Bash 中執行下述命令:

1.輸入命令:git fsck -.-lost-found,可以看到好多“dangling commit” 
2.清空他們:git gc   # 可以直接執行這行代碼

?


?

2、在服務器上的準備工作

 本文介紹的服務器為 Ubuntu

 2.1、?Ubuntu 開啟 root 用戶

# 如果是新裝的機子,開啟root用戶采用下述指令
> sudo passwd root
> 然后輸入root 用戶密碼# 如果已有 root 用戶 ,直接進入
> su -  或 su root  都能進入root 用戶

 2.2、為了方便Xshell 連接服務器,建議安裝 OpenSSH(一般云服務器上都已經安裝好的)

  xshell 連接服務器方式介紹:https://www.cnblogs.com/Eric15/articles/9459329.html

> sudo apt install openssh-server openssh-client    # 安裝 openssh
> service ssh restart     # 重啟 openssh

  2.2.1、安裝 vim:

sudo apt install vim

 


2.3、安裝`MySQL`服務器和客戶端:

sudo apt install mysql-server mysql-client
sudo apt-get install libmysqld-dev

  MySQL 安裝及相關操作參考鏈接:https://www.cnblogs.com/Eric15/articles/9198777.html

?

 MySQL簡單操作指令:

#linux/ubuntu mysql的啟動關閉# 一、 啟動方式
1、使用 service 啟動:service mysql start
2、使用 mysqld 腳本啟動:/etc/inint.d/mysql start
3、使用 safe_mysqld 啟動:safe_mysql&# 二、停止
1、使用 service 啟動:service mysql stop
2、使用 mysqld 腳本啟動:/etc/inint.d/mysql stop
3、mysqladmin shutdown# 三、重啟
1、使用 service 啟動:service mysql restart
2、使用 mysqld 腳本啟動:/etc/inint.d/mysql restart# 客戶端連接MySQL 服務端
# 1.遠程連接:mysql -h host -u user -p
# 2.本地客戶端連接:mysql -uroot -p# 回車后輸入密碼即可

?


?

?2.4、安裝 memcached

> sudo apt install memcached

 操作 memcached :

telnet 127.0.0.1 11211

?


?

2.5、安裝 python

# Linux/Ubuntu 默認裝有 python2 python3# 安裝python2 、pip:
> sudo apt install python
> sudo apt install python-pip# 安裝python3 、pip3:
> sudo apt install python3
> sudo apt install python3-pip# 設定python默認執行版本為python3:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150


# 如果提示 pip 版本過低,執行下述命令更新pip:

 pip install --upgrade pip

?

pip 與 pip3 區別:

pip和pip3的區別:pip是python的包管理工具,pip和pip3版本不同,都位于Scripts\目錄下:
如果系統中只安裝了Python2,那么就只能使用pip。
如果系統中只安裝了Python3,那么既可以使用pip也可以使用pip3,二者是等價的。
如果系統中同時安裝了Python2和Python3,則pip默認給Python2用,pip3指定給Python3用

?

2.6、安裝虛擬環境 :virtualenv? 、virutalenvwrapper

 虛擬環境參考博文:https://www.cnblogs.com/Eric15/articles/9517232.html

# 安裝 virtualenv
> pip install virtualenv      # python2版本的virtualenv
> pip3 install virtualenv    # python3版本# 使用指定 python 版本創建 virtualenv 虛擬環境
> virtualenv -p C:\Python36\python.exe virtualenv-name# 安裝 virtualenvwrapper
> pip install virtualenvwrapper      # python2版本
> pip3 install virtualenvwrapper    # python3版本# 使用指定 python 版本創建 virtualenvwrapper虛擬環境 ,如python2 、python3均存在,創建虛擬環境時默認使用的解釋器是python2版本,如果要使用python3版本,則需指定python版本
> mkvirtualenv --python==C:\Python36\python.exe virtualenv-name     # Windows
>
mkvirtualenv --python=/usr/bin/python3 py3scrapy # linux/Ubuntu
# 注意點: # 1. 直接安裝 virtualenvwrapper 時,會一同安裝 virtualenv  # 2.當只安裝python2版本 或 python3版本的 virtualenvwrapper時,創建 virtualenvwrapper虛擬環境 使用的就是對應的python版本  

?

 配置文件配置:

# 使用 vim 進入 /.bashrc 文件中做以下改動:

export WORKON_HOME=$HOME/.envs  #虛擬環境都保存到 .envs文件夾中

VIRTUALENVWRAPPER_PYTHON='/usr/bin/python3'  #指定創建 virtualenvwrapper 虛擬環境時默認采用 python3版本的解釋器 ,針對使用 pip3 安裝的virtualenvwrapper ,如是pip(python2)安裝的virtualenvwrapper,默認是python2解釋器,不需要添加此行代碼   

source /usr/local/bin/virtualenvwrapper.sh  #啟動文件路徑  使用pip/pip3 安裝 virtrualenvwrapper虛擬環境時,會生成virtualenvwrapper.sh并放置到python的bin目錄下,找到該路徑下的bin/virtualenvwrapper.sh文件并指定為默認的啟動文件   # 然后重啟 /.bashrc 文件:
> source ~/.bashrc

? 如果安裝過慢,可以采用豆瓣源安裝的方式:

sudo pip install -i http://pypi.douban.com/simple/ virtualenvwrapper

?


?

2.7、安裝 git :

sudo apt install git

?拉取遠程代碼到本地:

# Linux/Ubuntu 
# 目錄:/home/nan/pro_python/xfz

> git init   # git 初始化xfz文件夾為git倉庫

> git remote add origin https://gitee.com/chenjiongnan/xfz.git     # 與遠程倉庫關聯

> git pull origin master      # 將遠程倉庫的代碼拉取到本地,回車后需要輸入賬號密碼# 驗證通過后,等待系統將項目代碼拉取到本地就可以了

?如果以后開發機上有修改/更改項目代碼,直接將代碼 push 到遠程倉庫,再在服務器上 pull 遠程代碼下來即可:

git push origin master

git pull origin master 

?


?3、數據遷移等準備?

?3.1、安裝 requirements.txt 中的所有包

 進入虛擬環境中,然后進入到項目所在目錄,執行命令:`pip install -r requirements.txt`,安裝好相應的包

pip install -r requirements.txt

?

3.2、在 MySQL 數據庫創建相應的數據庫

> mysql -uroot -p       # 進入數據庫
> 輸入密碼# 進入數據庫后 ,創建我們需要的數據庫:
create database xfz charset utf8;# 退出 數據庫
> exit;

?

關于數據庫數據遷移,可參考博文:https://www.cnblogs.com/Eric15/articles/9704522.html


?

3.3、django 表數據 文件遷移

進入項目主目錄下(有 manage.py文件的目錄下),執行`python manage.py migrate`命令,將遷移文件,映射到數據庫中,創建相應的表?

python manage.py migrate

?

?注意:由于項目部署前,在開發機上工作時我們已經生成了遷移腳本,因此不需要先運行 'python manage.py makemigrations' ,直接運行 'python manage.py migrate' 即可


?

3.4、設置`ALLOW_HOST`為你的域名(服務器域名),以及ip地址 ,同時設置`DEBUG=False`,避免如果你的網站產生錯誤,而將錯誤信息暴漏給用戶

DEBUG = FalseALLOWED_HOSTS = ["192.168.*.*",]    # ALLOWED_HOSTS 填的是服務器的域名或ip

3.5、試啟動項目

# 執行啟動項目命令:
python manage.py runserver 0.0.0.0:8000# 在網頁中輸入 http://服務器的ip地址:8000/ ,訪問該網站
> http://192.168.1.145:8000

?3.6、靜態文件收集

 收集靜態文件是為了將靜態文件提供給 Nginx ,這樣用戶如果只是請求靜態文件,就可以從Nginx中獲取,而不需要進入服務端獲取了

 在settings.py 中設置 STATIC_ROOT:

# settings.py
 
STATIC_ROOT = os.path.join(BASE_DIR, "static_dist")   # static_dist:新建的文件夾,用于收集靜態文件# 然后將代碼推到遠程倉庫,再在服務器中將遠程代碼拉取下來
# 在服務端執行以下命名,收集所有靜態文件,也可以在處理Nginx 時再收集靜態文件:python manage.py collectstatic

?

四、Nginx + uwsgi + Django 項目部署

 Nginx + uwsgi + Django 生產部署環境參考博文:https://www.cnblogs.com/Eric15/articles/9484762.html?

1、Nginx

 1.1 Nginx 安裝

  nginx是一個web服務器,用來加載靜態文件和接收http請求的。通過命令`sudo apt install nginx`即可安裝。

sudo apt install nginx

?

 1.2 Nginx 常用命令

service nginx start     # 啟動nginx
service nginx stop     #  關閉nginx
service nginx restart  # 重啟nginx

 在網頁訪問服務器ip + 80端口 (http://192.168.1.101:80) , 如果能成功訪問則表示Nginx 安裝成功且已啟動

 1.3 編寫 Nginx 配置文件

  在`/etc/nginx/conf.d`目錄下,新建一個文件,叫做`xfz.conf`,文件名可以任意取,建議以項目名命名,然后將以下代碼粘貼進去保存:

upstream xfz {      # 項目名server unix:///home/nan/pro_python/xfz/xfz.sock;    # Nginx配置的server路徑要與uwsgi 的server路徑保持一致(位置:項目xfz目錄下的xfz.sock),xfz.sock不需要手動創建,但Nginx與uwsgi 通信時會自動創建 
}# 配置服務器
server {# 監聽的端口號listen      80;# 域名server_name 192.168.0.101;    # 服務器ip 、域名等charset     utf-8;# 最大的文件上傳尺寸
    client_max_body_size 75M;  # 靜態文件訪問的urllocation /static {# 靜態文件地址alias /home/nan/pro_python/xfz/static_dist;           # STATIC_ROOT 靜態文件的路徑 
    }# 最后,發送所有非靜態文件請求到django服務器location / {uwsgi_pass  xfz;    # 與上面upstream對應# uwsgi_params文件地址include     /etc/nginx/uwsgi_params; }
}

? 寫完配置文件后,為了測試配置文件是否設置成功,運行命令:`service nginx configtest`,如果不報錯,說明成功

service nginx configtest

?

? 每次修改完了配置文件,都要記得運行`service nginx restart`。

service nginx restart

?

2、uwsgi

 2.1 概述

? uwsgi是一個應用服務器,非靜態文件的網絡請求就必須通過他完成,他也可以充當靜態文件服務器,但不是他的強項。uwsgi是使用python編寫的,因此通過`pip install uwsgi`就可以了。(uwsgi建議安裝在系統級別的Python環境中,不要安裝到虛擬環境中) ,如果安裝在虛擬環境中,則每次啟動uwsgi ,必須先要進入虛擬環境,再進入項目目錄下,才能啟動。

 2.2 安裝

# 安裝
pip install uwsgi pip3 install uwsgi

?

 2.3 啟動 django 項目

# 啟動 uwsgi
> uwsgi --http :8000 --module xfz.wsgi --vritualenv=/home/.envs/xfz# 服務器網址為 :http://[服務器ip]:8000
# xfz.wsgi :前綴為項目名稱
# virtualenv : 后面為項目所在的虛擬環境文件夾地址

 輸入網址: http://服務器地址/news:8000? :訪問本項目新聞首頁,如果能訪問成功,說明uwsgi啟動成功

?

 2.4 編寫 uwsgi 配置文件

  在項目的根目錄下面,創建一個文件叫做`xfz_uwsgi.ini`的文件,然后填寫以下代碼:

[uwsgi]# Django相關的配置
# 必須全部為絕對路徑
# 項目的路徑
chdir           = /home/nan/pro_python/xfz
# Django的wsgi文件
module          = xfz.wsgi      # 項目xfz 下的wsgi.py文件
# Python虛擬環境的路徑
home            = /home/nan/.envs/xfz# 進程相關的設置
# 主進程
master          = true
# 最大數量的工作進程
processes       = 10
# socket文件路徑,絕對路徑
socket          = /home/nan/pro_python/xfz/xfz.sock      # 與 Nginx server 對應
# 設置socket的權限
chmod-socket    = 666
# 退出的時候是否清理環境
vacuum          = true

 寫完 uwsgi 的配置文件,以后通過uwsgi 啟動 Django項目時,就可以通過啟動uwsgi 配置文件的方式啟動:

# 進入項目根目錄下:/home/nan/pro_python/xfz(根目錄下有xfz_uwsgi.ini 文件),然后執行下行命令:

uwsgi --ini xfz_uwsgi.ini

?


?3、supervisor

 3.1 概述

  supervisor 可以用來管理 uwsgi ,在uwsgi發生意外的情況下,可以自動讓其重啟。除了重啟,也可以執行其他操作,如關閉、啟動、重新啟動 uwsgi 等。

 3.2 安裝

  在系統級別的python環境下進行安裝:

pip install supervisorpip3 install supervisor

?

 3.3 編寫 supervisor 配置文件

  在項目的根目錄下創建一個文件叫做`xfz_supervisor.conf` ,將下述代碼粘貼到里面:

# supervisor的程序名字 ,可任取
[program:xfz]
# supervisor執行的命令:啟動uwsgi
command=uwsgi --ini zlkt_uwsgi.ini
# 項目的目錄
directory = /home/nan/pro_python/xfz
# 開始的時候等待多少秒
startsecs=0
# 停止的時候等待多少秒
stopwaitsecs=0  
# 自動開始
autostart=true
# 程序掛了后自動重啟
autorestart=true
# 輸出的log文件 , 需要提前先到項目根目錄下新建log 文件夾 ,否則運行時會報錯
stdout_logfile=/home/nan/pro_python/xfz/log/supervisord.log
# 輸出的錯誤文件
stderr_logfile=/home/nan/pro_python/xfz/log/supervisord.err[supervisord]
# log的級別
loglevel=info[inet_http_server]
# supervisor的服務器
port = :9001
# 用戶名和密碼
username = admin
password = 123# 使用supervisorctl的配置
[supervisorctl]
# 使用supervisorctl登錄的地址和端口號
serverurl = http://127.0.0.1:9001
# 登錄supervisorctl的用戶名和密碼
username = admin
password = 123[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

 然后使用命令`supervisord -c xfz_supervisor.conf`運行就可以了:

# 在項目根目錄下運行
supervisord -c xfz_supervisor.conf

 使用supervisord 成功運行后,以后如果想要啟動或關閉`uwsgi`,就可以通過命令`supervisorctl -c xfz_supervisor.conf`進入到管理控制臺,然后可以執行相關的命令進行管理:

# 客戶端操作 supervisor  ,相當于mysql客戶端操作服務端一樣
supervisorctl -c xfz_supervisor.conf    # 從客戶端啟動supervisor ,前提需開啟supervisord ,且進入項目根目錄下執行# 可執行的相關命令:* status                # 查看狀態* start program_name    #啟動程序 ,即啟動uwsgi ,因supervisor 中command配置的就是啟動uwsgi 的命令,所以啟動supervisor的同時就是啟動uwsgi* restart program_name  #重新啟動程序* stop program_name     # 關閉程序* reload                # 重新加載配置文件,即xfz_supervisor.conf* quit                  # 退出控制臺,即退出 supervisorctl

? 注:program_name:為 supervisor 的程序名:

  

 進入到 supervisorctl 時,輸入 'help' ,可查看 supervisor 相關的一些操作:

  

 3.4 關系圖

?  使用 supervisor 管理 uwsgi ,而不管理 Nginx 的原因是:Nginx 自身是守護進程,當程序掛了會自動重啟 ,而 uwsgi 自身不是守護進程 ,程序掛了就掛了。使用 supervisor 來管理 uwsgi ,相當于給uwsgi 起了個守護進去,當 uwsgi 程序掛了會自動給重啟。

  


* Nginx 與 uwsgi 都安裝及配置好配置文件后,啟動項目:

# 1. 沒有 [supervisor] ,啟動步驟 ↓:# 1)啟動 Nginx
service nginx start/restart# 2)啟動 uwsgi ,項目根目錄下啟動
uwsgi --ini xfz_uwsgi.ini# =============================================# 2. [supervisor]管理 uwsgi ,啟動步驟 ↓:# 1)啟動 Nginx
service nginx start/restart# 2)由 supervisor 啟動 uwsgi ,項目根目錄下啟動
supervisord -c xfz_supervisor.conf

?

?溫馨提醒:

 1、在 copy 或編寫 Nginx 、uwsgi 、supervisor 配置文件時 ,記得把注釋都刪掉

 2、放在服務器上的開發項目,建議放置在/srv 目錄下(在根目錄'/' 下新建 srv 目錄)


?

轉載于:https://www.cnblogs.com/Eric15/articles/11141987.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248581.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248581.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248581.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2019.01.26 codeforces 1096G. Lucky Tickets(生成函數)

傳送門 題意簡述:現在有一些號碼由000~999中的某些數字組成(會給出),號碼總長度為nnn,問有多少個號碼滿足前n2\frac n22n?個數碼的和等于后n2\frac n22n?個數碼的和(保證nnn是偶數)&#xff0…

看完這篇文章保你面試穩操勝券——小程序篇

? 進大廠收藏這一系列就夠了,全方位搜集總結,為大家歸納出這篇面試寶典,面試途中祝你一臂之力!,共分為四個系列 ? 本 篇 為 《 看 完 這 篇 文 章 保 你 面 試 穩 操 勝 券 》 第 四 篇 ( 微

17 | 如何正確地顯示隨機消息?

我在上一篇文章,為你講解完order by語句的幾種執行模式后,就想到了之前一個做英語學習App的朋友碰到過的一個性能問題。今天這篇文章,我就從這個性能問題說起,和你說說MySQL中的另外一種排序需求,希望能夠加深你對MySQ…

看完這篇文章保你面試穩操勝券——React篇

? 進大廠收藏這一系列就夠了,全方位搜集總結,為大家歸納出這篇面試寶典,面試途中祝你一臂之力!,共分為四個系列 ? 本 篇 為 《 看 完 這 篇 文 章 保 你 面 試 穩 操 勝 券 》 第 五 篇 ( r

HTML的footer置于頁面最底部

vue項目中&#xff0c;使用element-ui的布局&#xff0c;仍然出現footer不固定頁面底部的情況&#xff0c;網上找到的一個管用的 方法是&#xff1a;footer高度固定絕對定位 <html><head></head><body><div class"header">header</…

logstash異常

logstash異常 123Unrecognized VM option UseParNewGCError: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.logstash的版本6.4.1&#xff0c;修改config/jvm.options&#xff0c;注釋掉-XX:UseParNewGC這個配置即可。…

QT+VS中使用qDebbug()打印調試信息無法顯示

首先右鍵點擊項目名稱&#xff0c;找到最后一項屬性 然后依次設置為如圖所示即可 再次編譯后&#xff0c;會彈出CMD窗口&#xff0c;出現qDebug的調試信息。 轉載于:https://www.cnblogs.com/WindSun/p/10328404.html

WebAPIs移動端特效——不看你就虧大了

Web APIs 本篇學習目標: ?能夠寫出移動端觸屏事件 ?能夠寫出常見的移動端特效 ?能夠使用移動端開發插件開發移動端特效 ?能夠使用移動端開發框架開發移動端特效 ?能夠寫出 sessionStorage 數據的存儲以及獲取 ?能夠寫出 localStorage 數據的存儲以及獲取 ?能夠說出它們兩…

MVC是一種用于表示層設計的復合設計模式

它們之間的交互有以下幾種&#xff1a;1.當用戶在視圖上做任何需要調用模型的操作時&#xff0c;它的請求將被控制器截獲。2.控制器按照自身指定的策略&#xff0c;將用戶行為翻譯成模型操作&#xff0c;調用模型相應邏輯實現。3.控制器可能會在接到視圖操作時&#xff0c;指定…

Centos7.2源碼安裝redis

1、下載redis包&#xff08;此處可到官網查看&#xff0c;有相應的命令&#xff09; wget http://download.redis.io/releases/redis-5.0.3.tar.gz 2、解壓之后&#xff0c;并進行make編譯 tar xzf redis-5.0.3.tar.gz -C /usr/local/cd /usr/local/redis-5.0.3/make如果出現如…

手擼移動端輪播圖(內含源碼)

移動輪播圖 移動端輪播圖與PC段輪播圖&#xff0c;在技術選擇上是有區別的&#xff0c;因為移動端的瀏覽器版本非常好&#xff0c;對于H5和CSS3的支持非常完美&#xff0c;所以很多效果可以CSS3的方式實現&#xff0c;比如可以使用 Transorm 屬性替代原來的動畫函數 可以自動…

原創jquery插件treeTable(轉)

由于工作需要&#xff0c;要直觀的看到某個業務是由那些子業務引起的異常&#xff0c;所以我需要用樹表的方式來展現各個層次的數據。 需求&#xff1a; 1、數據層次分明&#xff1b; 2、數據讀取慢、需要動態加載孩子節點&#xff1b; 3、支持默認展開多少層。 在網上找到了很…

初探Vue3

&#x1f31c;本篇文章目錄\textcolor{green}{本篇文章目錄}本篇文章目錄 &#x1f31b; &#x1f435; 新構建工具Vite\textcolor{blue}{新構建工具Vite}新構建工具Vite &#x1f435; CompositionAPI火爆來襲\textcolor{blue}{Composition API火爆來襲}CompositionAPI火爆來…

linux執行python命令后permission denied

linux下執行python后顯示被拒絕問題定位&#xff1a; 1、檢查下要執行的文件的權限是否存在執行權限&#xff0c;否則執行chmod命令賦予權限&#xff1b; 2、若賦予權限后仍然顯示沒有權限&#xff0c;檢查下執行的python文件是否有權限&#xff0c;否則執行chmod賦予執行權限。…

mysql zip 安裝

第一步下載mysql.zip https://dev.mysql.com/downloads/mysql/5.7.html#downloads 第二步&#xff1a;解壓文件后在其目錄下&#xff0c; 新建 my.ini 注意編碼為ansi&#xff0c;新建 data 空文件夾 my.ini內容為&#xff1a; [mysql]# 設置mysql客戶端默認字符集default…

Vue3的響應式原理解析

Vue3的響應式原理解析 Vue2響應式原理回顧 // 1.對象響應化&#xff1a;遍歷每個key&#xff0c;定義getter、setter // 2.數組響應化&#xff1a;覆蓋數組原型方法&#xff0c;額外增加通知邏輯 const originalProto Array.prototype const arrayProto Object.create(orig…

react Native 環境安裝配置——圖解版一目了然

?原創不易&#xff0c;還希望各位大佬支持一下\textcolor{blue}{原創不易&#xff0c;還希望各位大佬支持一下}原創不易&#xff0c;還希望各位大佬支持一下 &#x1f525; Flutter和reactNative的區別\textcolor{green}{Flutter和react Native的區別}Flutter和reactNative的…

第七章 字典和集合[DDT書本學習 小甲魚]【2】

7.1.2 字典的各種內置方法在序列里為不存在位置賦值&#xff0c;會出現錯誤&#xff1b;而在字典不存在得位置賦值&#xff0c;會創建。工廠函數&#xff08;類型&#xff09;以前學過 str(),int(),list(),tuple()....... 1.fromkeys() 用于創建和返回一個新的字典 不是修改 2…

Installing Node.js and Express on Ubuntu

Installing Node.js and Express on Ubuntu 1. 在nodejs官網上下載Linux Binaries(已經包含了npm):2. 安裝Node.js下載后解壓&#xff0c;并在解壓的文件夾中啟動Terminal后&#xff0c;輸入命令&#xff1a; sudo cp * /usr/local/ -r再輸入命令&#xff1a; node -v …

Chrome插件我只服你——10w人都在使用的瀏覽器插件

?文章摘要導讀\textcolor{blue}{文章摘要導讀}文章摘要導讀 &#x1f525; 為什么選擇Chrome插件\textcolor{green}{為什么選擇Chrome插件}為什么選擇Chrome插件 &#x1f525; 插件具備的強大優勢\textcolor{green}{插件具備的強大優勢}插件具備的強大優勢 &#x1f525; …