学ぶためのPython関連のプロジェクトの展開を探しているうちドッキングウィンドウは、当然のPythonのウェブドッカー[環境]、この種の内容と知識ポイントの要約を構築するために、教室内の次のテンセントオープンクラスを見つけます。
コースは、それが基本的なコースの白エントリードッカーの展開に適しており、約6時間の合計です。コース、主に以下の章:
システムとソフトウェア構成:
Win10 + CentOS7 +のpython3 + MySQL8 + PyCharm + VMware15プロ+ MobaXterm + Navicatはプレミアム12
まず、基本
1、Python2のCentOSのデフォルトのインストール、あなたがのpython3をインストールすることができ、オリジナルのPython2は、アンインストール、CentOS7 Python2プログラムがありません依存しています。
2、yumのコマンドは直接のPython、EPELをインストールするには、ソースの必要性をインストールすることはできません
yumを インストールウォームリリース
3、Linuxは、各フォルダを意味します
1 / ブートデフォルトのディレクトリは、Linuxカーネルとブートファイルに格納されています。 2 / binディレクトリには、Linuxの一般的なコマンドが含まれています。 3 / このディレクトリsbinには、システム管理者によって使用される店舗管理手順に使用されます。 4 / varディレクトリには、多くの場合、ログデータファイルを含む、変化したファイルです。 5 / etcディレクトリには、このようなネットワーク構成ファイルなど、さまざまなストレージシステム管理コンフィギュレーション・ファイルとサブディレクトリ、MySQL設定ファイル中に使用されます。 6 / devのこのディレクトリには、すべての外部デバイスは、Linuxシステムを使用して含まれ、それが実際にプリンタなどのこれらの外部ポートアクセスデバイス、です。 7 / mntに一時ディレクトリに別のファイルシステムがハングアップします。 8 / スーパーユーザーとしてログオンしている場合、ルートが、これはスーパーユーザのホームディレクトリです。 9「XX」という名前のユーザーは、その後で/ホーム対応するディレクトリ「/ホーム/がある場合、/ homeは確立するために、ユーザのホームディレクトリを格納するために使用されるXX」のパス、。 10 / USRユーザーアプリケーションとファイルがディレクトリ内に仮想的に保存されます。 11 /このディレクトリは、店舗システムに使用されるlibに動的にリンクされた共有ライブラリは、ほとんどすべてのアプリケーションは、そのディレクトリにある共有ライブラリを利用します。 12 / あなたはそれが空であるようなソフトウェアをインストールしていないときにそのようなソフトウェアをインストールする際に、後でそれを削除したら、おそらくトラブルに実行する場合は、あなたがたが、そう、このディレクトリを検索しますサードパーティ製のソフトウェアをインストールするオプションデフォルト。 13 / 別のプログラムの実行時に発生する一時的なデータのためのTMP、ディレクトリは自動的にクリアされます。 14 / procディレクトリは、あなたのハードディスク上とメモリ内のディレクトリの内容を、自分自身ではないのメモリにシステムによって生成され、このシステムの情報を得ることができます。 15 / miscのは、複数のユーザーがそれらの蓄積や一時ファイルを転送することができます。 16 / ロスト+は、ほとんどの場合、空のあるディレクトリを見つけました。しかし、いくつかの一時ファイルの後に突然の停電や異常シャットダウンがここに格納されている場合。 17個のファイル色意味青フォルダ、緑色は、実行可能ファイルであり、青色リンクされたファイルであり、赤いボックスファイルは、SUIDビットに追加され、任意の権利を制限し、圧縮されたファイルは赤、茶色のデバイスファイルの。
4、一般的に使用されるLinuxのコマンド
。1つの タッチ #は空白のドキュメント作成 2 RM( - -r再帰的な代表#削除ファイルやフォルダ-rf 代表力削除F)を 3。 は、mkdir #は空のフォルダを作成します 4。 以前にCD ..#バックを 5。 タール #圧縮と解凍を、-cvf圧縮パラメータ、 - あるxv解凍 #の.tar上記は、Linux圧縮ファイル形式、ファイルのアクセス権に関する情報を保持することができる圧縮ファイルに固有であります
二、ウェブの記事
ジャンゴと比べて1フラスコフレームワークは、サードパーティを介して拡張することができる軽量のWebフレームワークです。
2、フラスコは、開発者がインストールして自由に選択できます、拡張ライブラリをたくさん持っています:
1つの Flask- 管理:管理者は、増加ウィジェット 2 Flask-をRedisのを結ぶ:キャッシュ 3つの。 Flask- CORS:クロスドメインのAjax 。4 Flask- ユーザー:ユーザー管理モジュール 5 Flask- 雪:雪アルゴリズムは、グローバルに一意のプライマリ・キー値を生成する 6。 Flask- SSE :プッシュメッセージ 7 Flask- SQLAlchemyの:読み取りと書き込みのMySQLデータベース 8フラスコ-アップロード:ファイルブラウザのアップロードを受け入れます
3、フラスコフレーム利点:
- 単純ですはじめ、それは明らかに公式ガイドによってフラスコの保持の動作を理解することができます
- サポートMVCモデル(モデル - ビュー - コントローラ)
- データベーステンプレートの様々な互換性Falsk
- ルーティングとデコレータによって設定された機能をルーティングフラスコ、開発者は、他の一致するファイルの援助を必要としません
図4に示すように、MVCパターン:複雑なソフトウェアシステム、抽象化モデルレイヤー(モデル)、レイヤビュー(ビュー)と制御層(コントローラ)によって、責任の明確な部門
5、青写真フラスコ機能項目が異なるWeb機能モジュールで定義することができます
6、フラスコ定義モジュールファイル:まずPythonのファイルを作成し、オブジェクト(青写真)の青写真、上記登録Web機能へのオブジェクトのための青写真、登録青写真フラスコオブジェクトに最終的にオブジェクトを作成します。
7、フラスコモジュール言語:
- バックグラウンドレンダリングダイナミックHTMLページ内フラスコサポート動的なページ技術、
- Jinja2のPythonは広く使われているテンプレートエンジンで、構文は習得が容易です
- Flask中的模板文件存放在templates目录,图片、样式和脚本存放在static目录
8、WEB方法中,render_template()函数用来把模板文件渲染成动态HTML
9、模板文件中,双大括号({{变量/表达式}})可以对模板页面插值
10、部署Python项目的时候,为了不泄露Python程序代码,所有我们要编译Python程序(pycharm项目文件夹会自动生成pyc文件)
11、Flask只允许本机访问5000端口,如果外机访问,需修改python源代码,app.run(host='0.0.0.0')
12、Linux开发5000端口持久生效:
1 firewall -cmd --zone=pulic --add-port=5000/tcp --permanent
三、Docker篇
1、虚拟化部署环境的重要性:
- 直接把程序按照或者部署在Linux操作系统上,很容易引发资源冲突(比如CentOS自带MariaDB数据库,再安装MySQL数据库会冲突)
- 程序卸载不干净,导致无法安装或部署新程序
- 每次部署之前要安装很多软件,修改复杂的配置文件
- 无法让服务器硬件资源实现多租户服务
- 增大了在Linux系统上部署集群和分布式的难度
2、Vmware和Docker对比:
- Vmare是重量级虚拟机,每个虚拟实例都虚拟了完整的硬件环境,所以对硬件要求较高
- Docker是轻量级虚拟机,只虚拟了少量的硬件设备,虚拟实例共享使用Linux内核
3、Docker是跨平台的轻量级虚拟机,但是在Window和MacOS上面有部分功能无法使用(Win10 有内置Linux虚拟机,故能运行Docker)
4、云计算中的Docker虚拟机:
5、SELINUX是CentOS系统捆绑的安全服务程序,因为安全策略太过严格,建议关闭,修改/etc/selinux/config文件,设置SELINUX=disabled
6、使用yum命令安装Docker服务即可
1 yum install docker -y #-y代表默认安装
7、DockerHub是Docker公共镜像仓库,为用户提供大量的镜像文件:https://hub.docker.com/,由于国内网络访问DockerHub很慢,无法下载镜像文件,可以使用Docker加速器:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://n1mngx9r.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
8、Docker 包含三个基本概念,分别是镜像(Image)、容器(Container)和仓库(Repository)。镜像是 Docker 运行容器的前提,仓库是存放镜像的场所。
9、什么是镜像:
- 为了快速打包和部署软件环境,Docker引入镜像机制
- 镜像是一个配置好的只读层软件环境
- 我们可以通过dockerfile文件创建出镜像,也可以从Docker仓库中下载到镜像
10、什么是容器:
- 容器是镜像基础之上创建出的虚拟实例,内容可读可写
- 一个Docker镜像可以创建出多个容器,而且容器直接相互隔离,部署的程序不会相互干扰
- 所有的容器直接使用书主机的Linxux内核、内存和硬盘,所以容器的性能非常接近于宿主机
11、常用Docker命令:
12、Docker网络环境:容器默认会分配动态IP地址,会导致下次启动容器时候IP地址发生变化,因此可以创建一个Docker内部网段:
docker network create --subnet=172.18.0.0/16 mynet #创建18网段名称为mynet docker network rm mynet #删除mynet网段
13、创建容器示例(容器使用端口映射/目录挂载/网络分配技术):
docker run -it -d --name=p1 -p 9500:5000 -v /root/project:/root/project -net mynet --ip 172.18.0.2 python:3.8 bash #创建容器,-d后台默认运行,--name容器名称p1,-p端口映射宿主机9500端口,-v目录挂载,-net使用mynet网络并分配ip,使用python3:3.8镜像,bash命令行界面
14、容器安装flask,可以使用国内镜像加快速度(sqlalchemy / mysql-connector-python):
docker exec -it p1 bash #进入p1容器
pip install flask -i https://pypi.tuna.tsinghua.edu.cn.simple/#清华大学镜像
15、用docker pull命令下载MySQL镜像(为确保部署没问题,Win端与Linux的各软件版本应尽量保持一致)
16、创建MySQL容器:
docker run --name m1 -p 4306:3306 --net mynet --ip 172.18.0.3 -v /root/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -d mysql:8.0.18 #创建MySQL容器不需要加-it,--name容器名称,--net分配网络 -v目录挂载(数据库挂了文件仍能提取),-e用户密码 ,-d该容器创建即后台运行
17、创建Session类(用来连接数据库)
from sqlalchemy.orm import sessionmaker #用以创建session类 from sqlalchemy import create_engine #保存数据库连接信息 url="myslq+mysqlconnector://root:[email protected]:4306/test" #数据库用户名密码地址端口及库名 engin=create_engine(url,pool_size=5) #数据库连接池对象个数 Session=sessionmaker(bind=engin) #创建session类
18、执行查询语句:先创建Session对象,然后才可以执行SQL语句,最后还要关闭数据库连接
session=Session() sql="select empno,ename,job from t_emp" cursor=session.execute(sql) result=cursor.fetchall() session.close()
最后补下课程链接: