flask+微信小程序開發(小白級+全開源+免費技術支持[僅這個項目])


這里是更新的部分--------------------------------------

1. 部署uWSGI+Supervisor來代替manage.py runserver,只需要簡單的幾步

上面是我的文件信息

配置uWSGI(記得在虛擬環境下)

安裝uWSGI

pip install uwsgi
uwsgi --version  # 查看版本

在manage.py目錄下,創建uwsgi.ini文件並編輯,即vim uwsgi.ini 即可,然后添加以下配置

[uwsgi]
master = true  # 啟動主進程
http=:5000  # flask是用htttp,:5000 等同於0.0.0.0:5000,但寫法不同
chdir = /home/flask_work  # 項目目錄
wsgi-file=/home/flask_work/manage.py  # 項目對應的啟動文件
callable=app  # 啟動文件里面的實例化目標
processes=4  # 進程數,一般是4,看核數,我的雲服務是1核...(窮)
threads=2  # 線程數,一般是2,氪金大佬隨意
buffer-size = 65536  # 包解析大小,這是配置的64K
vacuum=true  # 自動移除unix Socket 和 Pid 文件 當服務停止的時候
pidfile =uwsgi.pid  # 記錄主進程pid號

此時uWSGI已配置完畢,是不是賊簡單,當然這是簡單版的,啟動

 

uwsgi --ini uwsgi.ini  # 啟動uwsgi,一定要在uwsgi.ini所在目錄
nohup 和 &  # 是指后台運行,此時你回車兩下,可以輸入命令后,就exit退出這個終端
# 可以在另外的新窗口ps -ef|grep uwsgi看到你已經開啟的python服務(記得先關掉原有的runserver)

此時還不夠安全,萬一uWSGI掛掉了呢?這時候就需要Supervisor來監控並啟動uWSGI

echo會自動幫你生成supervisor配置文件,你只需要在最下面加上這段話

[program:flask_work]
command = /root/.virtualenvs/flask_work/bin/uwsgi /home/flask_work/uwsgi.ini
autostart=true
# 以下備注記得不要也復制上去,就復制上面3段就可以了
# [] 第一段表示文件的目錄
# 第二段 表示啟動命令,前半段是你的虛擬環境里面的uwsgi,不同服務器地址不同,記得看,后半段是uwsgi地址
# autostart 是啟動啟動

是不是很簡單~

# 然后你supervisorctl reload 重啟即可
ps -ef|grep uwsgi   # 查看uwsgi信息
kill -9 17025  # 殺掉uwsgi,17025是id號
# 如果殺掉,然后還能看到,而且啟動時間成改,即成功!

 

這里是更新的部分--------------------------------------

1. 部署概括:服務器網絡、python包、centos環境、mysql/pymysql、npm、nginx、git、

https://github.com/ben1234560/flask_and_wx_samllapp GitHub

https://gitee.com/benjas/CRMXiTongandWoDeShangCheng gitee

+++++++++++++++++++++++++++++++++++

應大家需求:把小程序的后台管理數據/僅cengtos部署版本,超簡單(利用flask-admin開發出來[可增刪改],能夠顯示數據[如果要更加完善需要各位的可以自行修改])

快速學習並利用flask-admin[只動了兩個模塊]

# 終端安裝flask_admin 和 中文轉換的flask_babelex
pip install flask_admin
pip install flask_babelex

 

# application/apps/index/models.py
# 導入模塊
from flask_admin.contrib.sqla import ModelView

# 配置基本模型,主要是進程ModelsView,方便開發,你可以直接在manage.py用ModelView替換它,這樣你都不用過來models這里寫東西了

class BaseModelview(ModelView):
    def getinfo(self):
        return "this is another model"

 

# manage.py代碼部分
from application.apps.index.models import Department,Users,BaseModelview
from flask_babelex import Babel
from flask_admin import Admin

# 給flask_admin添加視圖,name是網址名稱,template_mode是指定的模板,有2和3
# BaseModelview就是models里面定義的模型類Users和Department也是
admin = Admin(app, name='后台管理系統', template_mode='bootstrap3')
admin.add_view(BaseModelview(Users, db.session,name='用戶管理'))
admin.add_view(BaseModelview(Department, db.session, name='部門管理'))

# 中文化方式
babel = Babel(app)
app.config['BABEL_DEFAULT_LOCALE'] = 'zh_CN'

配置完成,啟動(在manage所在的文件下,python manage.py runserver)訪問http://127.0.0.1:5000/admin 即可

以下是部署到centos7服務器上

# /etc/nginx/conf.d/default.conf,給nginx啟動文件配多一個server並重啟nginx即可
server{
    listen  8000;
    server_name www.ben123123.club;        # 監聽域名及端口
      location /admin {
        proxy_pass  http://127.0.0.1:5000/admin;
    }
 }

 

 

 

+++++++++++++++++++++++++++++++++++

以下是正文---------

2. 快速部署[centos7/window10,最快的學習就是實踐]

  centos6配置

  需要用到

  • 雲服務器【我用的是最低配置90天的騰訊雲服務器,因為只有90天以上的服務器才可以備案】
  • 一個已備案的域名【沒備案的一定要先備案,我的審核了3個星期才通過,我是1塊錢買的一年club尾綴的】https://cloud.tencent.com/
  • xshell連接服務器【你可以用電腦自帶的cmd】

  開始:

  1.1 域名全開端口+前綴

  1.2 python3環境配置

ssh root@IP  # root用戶遠程登陸雲服務器

  

  

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
# 找到Python-3.6.8.tgz(一般在當前目錄),並解壓Python-3.6.8.tgz 到當前文件夾
tar -zxvf Python-3.6.8.tgz

# 進入解壓出來的文件夾中
ls # 查看當前目錄情況
cd Python-3.6.8/
# 編譯安裝
./configure --prefix=/usr # 注釋:--prefix是設置安裝位置
make && make install

# 安裝完成后 輸入以下命令即可查看是否安裝成功
which python3
# 下載相關庫
yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

  1.3 Python開發之必備虛擬環境virtualenv

pip3 install -i https://pypi.doubanio.com/simple virtualenv #虛擬環境
pip3 install virtualenvwrapper -i https://pypi.doubanio.com/simple # 虛擬環境管理器

# 設置虛擬環境的儲存路徑
mkdir $HOME/.virtualenvs

配置虛擬環境的系統環境變量[其中調用python3的路徑,不同的服務器路徑不同]:
vim ~/.bashrc
# 然后在最下面添加下面四句命令:
export WORKON_HOME=$HOME/.virtualenvs  # 設置虛擬環境目錄
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'  #純凈初識化,也可以不寫[這段注釋要刪掉,因為前面的引號問題]
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 # 默認python版本為python3
source /usr/bin/virtualenvwrapper.sh  # shell登錄時直接執行該文件

# 配置完成后重新運行一下.bashrc文件:
source ~/.bashrc
# 測試一個創建一個虛擬環境:
mkvirtualenv test # 創建一個虛擬環境叫test
workon # 查詢有什么虛擬環境
workon test # 使用test虛擬環境
pip list # 查看當前下載中的庫
deactivate  # 退出當前虛擬環境
rmvirtualenv test # 刪除test虛擬環境

  1.4 官方自帶的yum源有一些軟件版本會比較舊,所以我一般用的yum源用的阿里雲。

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all    清除所有緩存
yum makecache    重新生成緩存

  1.5 git工具的安裝

yum install git     # 安裝git工具
# 進入項目存儲的環境(一般放在自己家目錄,由於我是root用戶,我就放在home目錄下)
cd /home
git clone https://gitee.com/個人網址/lufei_pc.git    # 自己的github項目地址
ls #  查看當前文件下的文件

  2.1 將我的后端代碼flask_centos從網上clone下來[可能你是從GitHub過來,也可能是gitee,不過用法大同小異,以下是gitee]

cd /home  # 去到home目錄下,我一般都是把代碼放home目錄,看個人
git init # 創建本地倉庫
git clone https://gitee.com/benjas/CRMXiTongandWoDeShangCheng.git
cd xxx  # 進入下載的工程目錄,沒登錄的記得登錄,上面有
git checkout -b 遠程倉庫分支名字 origin/遠程倉庫分支名字 
git pull #進行更新

  2.2 同步python環境(記得先啟動虛擬環境)

mkvirtualenv xxx   # 環境虛擬環境,創建的時候不用-python3,因為我們之前已經配置好bashrc文件了,deactivate退出虛擬環境 workon xxx 進入虛擬環境
cd 項目目錄的dock #下面有一個requirement.txt就是生成的后端運行包 pip install
-r requirement # -r讀,安裝這個文件的全部包,你也可以先打開看看

  安裝過程你可能會發生以下報錯,而且網上很多解決方法都是混亂的或者沒有的

  關於安裝MySQL-python找不到ConfigParser模塊

  原因:pip是基於python3+版本的,在 Python 3.x 版本后,ConfigParser.py 已經更名為 configparser.py 所以出錯

find / -name configparser.py  # 找到它,並復制一份報錯所需的模塊即可

  重新安裝發現新的問題,找不到mysql_config模塊

  原因:MySQL的bin目錄沒有配置到root用戶的.bash_profile文件中,也沒有配置到/etc/profile中,所以才會導致找不到mysql_config命令

yum install mysql-devel  # 安裝相關模塊

  以下報錯你可能不會發生,因為我修改了一下requirement包,也可能會,即安裝pygoject無法安裝

  即使換版本也報錯,就試下這個(刪掉requirement里面的gobject獨立安裝它)

yum install python-gobject gtk3

  此時python包已安裝完成,記得修改setting里面的文件配置即可

  3.1 安裝mariaDB(Linux/CentOS7.0發行版已將默認的數據庫從 MySQL 切換到 MariaDB兩人除了名字簡直就是一個東西,而且mysql在該環境下極其難裝)

yum install mariadb-server mariadb -y  # 安裝
systemctl start mariadb  # 啟動

# 確保mariadb服務器啟動后,執行命令初始化
mysql_secure_installation

mysql -uroot -p123  # 進入數據庫,你可以做跟mysql一模一樣的操作了
# 此時你可以設置一個對應的用戶權限給對應的庫,我沒有
create database company_info charset=utf8mb4;  #company_info是對應的數據庫名字,后面拉數據需要用到的
show databases;  # 看下是否創建成功,成功就退出遷移數據
exit;  # 退出數據庫

  3.2 刪除原有數據版本及遷移測試數據

rm -rf migrations  # -rf即強勢刪除目錄[最高級]
# 數據模型遷移,遷移成自己的migrations

python manage.py db init # 項目剛創建時進行初始化
python manage.py db migrate -m '創建基本數據庫'
python manage.py db upgrade

mysql -uroot -p123 company_info < company_info.sql  # 前面的company是數據庫內的剛剛創建的庫,company_info.sql 是可遷移的測試數據

# 遷移完成后可以進去庫內看一下
mysql -uroot -p123
use company_info;
show tables;
select * from tb_use; # tb_use是表名字

# 此時可以啟動python后端,在manage所在的文件下,python manage.py runserver

  4.1 nginx安裝配置及啟動[非虛擬環境下安裝]

yum install -y nginx

  需要報錯,先執行以下操作,再繼續安裝

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx

whereis nginx # 查看位置在哪里

  如果發生以下報錯 解決 /var/run/nginx.pid failed

nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
sudo nginx -c /etc/nginx/nginx.conf
nginx -s reload # 重啟nginx

  4.2 配置nginx【此步驟前必須已先處理好小程序的域名備案及證書,未處理可看下面小程序篇,而且小程序請求的網址也需要改改,那是我的服務器網址,會開一段時間但別搞事情,因為我很多東西都沒配...】

https://cloud.tencent.com/document/product/400/35244 這是證書指南,不過路徑需要改一下,證書還要生成,下面的小程序篇有網址

 

server {
    listen  8080;
    server_name www.ben123123.club;        # 監聽域名及端口
     ssl on;
     ssl_certificate 1_www.ben123123.club_bundle.crt;#證書文件名稱
     ssl_certificate_key 2_www.ben123123.club.key;#私鑰文件名稱
     ssl_session_timeout 5m;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #請按照這個協議配置
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#請按照這個套件配置
     ssl_prefer_server_ciphers on;
    location / {
        proxy_pass  http://127.0.0.1:端口號/;   # 當請求過來時,跳轉到這個網址,也可以跳轉到html等
    }
    location /static/ {

    }
 }
nginx -s reload # 重啟即可
ps aux|grep nginx   # 查看當前nginx進程

 

   微信小程序配置

  1.1 申請證書及解析壓縮證書

    https://cloud.tencent.com/document/product/400/8422官方鏈接

   2.1 window下微信小程序配置【只有window跟OS版】,最全的window下安裝npm實現小程序構建npm

    下載 node.js http://nodejs.cn/download/

   

  選擇C盤以外的盤,然后在cmd 里輸入命令 node -v,如果有版本則成功,沒有則配路徑,以下是我的node路徑

https://youzan.github.io/vant-weapp/#/quickstart 這是vant組件庫的網址

  關於../wxs/utils.wxs not found from .報錯

  點擊工具/重新構建npm即可

  2.2 此時小程序也已經配完,你只需要修改一下請求的網址即可

  

  window 版,拉下window版的flask后端[刪掉migrations遷移自己的migrations(上面有方法)並遷移測試數據即可],小程序按上面配置[然后修改下網址的訪問為本地],備案沒通過的就用window版

3. 關於微信小程序前端的一些知識

  1. setData的異步進行,獲取數據后打印是沒有的,但是wxml已經收到了

  2. setStorageSync 同步緩存的利用【數據更安全】

  3. 第三方組件vant-Weapp的使用

  4. 生命周期onLoad和onShow的合理利用(如果想要每次切換頁面都刷新,就用onShow,而onLoad則是讓頁面數據顯示看起來更流暢)

  5. 跳轉到tarbar 頁面需要不能用negativeTo等【swi...】

  6. 數據的安全需要前后端都進行檢測限制

4. 關於該項目有什么問題都可以找我【或者以外的】QQ909336740,回復速度不定,祝各位能快速掌握flask+小程序

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM