局域网图片网站制作:正式开始


前面三篇文章已经从零开始搭建好了运行环境,现在开始正式项目,前面三篇文章的地址如下:

1)项目规划局域网图片网站制作:项目规划
2)运行环境局域网图片网站制作:运行环境的搭建
3)安装配置局域网图片网站制作:Nginx,python及Flask的安装配置

若遇到自启动问题可以直接参考文章最后: 自启动的修改说明

第一步,github建立项目然后下载。

首先到github新建一个空的项目,名叫:LocalCartoon(前面有部分介绍把cartoon的翻译弄错,这里就不修改前面的了,这里修改一下就好了),切换到devlop分支。其地址:
https://github.com/honeeWong/LocalCartoon.git
可以在虚拟机中直接运行git clone https://github.com/honeeWong/LocalCartoon.git,就可以下载到最新的代码。
继续阅读“局域网图片网站制作:正式开始”

局域网图片网站制作:Nginx,python及Flask的安装配置


由于上一篇文章内容过多,因此将Nginx,python虚拟环境和Flask的安装做为一个新的篇来讲述,本篇内容相对简单,而且有其他文章已经针对python虚拟环境和Flask有所讲述,所以这里简单说明:

Nginx的安装

centOS默认的yum是没有Nginx源的,我这里参考网络的方法将源加入到yum中,具体如下:

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

执行yum install即可安装Nginx

yum -y install nginx

安装完毕启动Nginx,输入:

service nginx start

正常情况下,在浏览器页面输入:http://192.168.1.168就可以看到Nginx的欢迎页面。

Python3的安装和Flask的安装。

centOS默认python版本是2.75,我们这边要更新到python3,按照如下方式进行:

yum install epel-release
yum install python34

然后按照 Python Flask微框架安装与基础说明 配置python 虚拟环境和安装Flask,简要步骤如下:

# 新建文件夹
mkdir p3venv
# 创建虚拟环境
python3 -m venv p3venv/
# 使能虚拟环境
#source p3venv/bin/activate
# 安装flask
pip install flask

这样基本的flask的环境安装完毕,需要更多的库的时候,可以继续用pip install 来安装。

编写简单的flask demo,测试Nginx的转发。

flask demo 如下所示:

# -*- coding: utf-8 -*-
#
# some messages for author 
#

# import flask
from flask import Flask

# 定义 app
app = Flask(__name__)

# 根页面
@app.route('/')
def index():
    # demo 
    return '<h1>Hello World!</h1>'
 
#执行app.run
if __name__ == '__main__':
    app.run(debug=True)

保存上述代码为demo.py, 直接运行python demo.py,然后再新窗口中输入:

curl 127.0.0.1:5000
#即可看到hellworld的页面内容。
  • 安装gunicorn

在虚拟的python3环境下输入 :

pip install gunicorn

安装完毕后输入:

#注意文件路径和执行的app名称要和文件一致。
gunicorn -w 4 -b 127.0.0.1:8080 demo:app

打开/etc/nginx/conf.d文件夹中的default.conf文件,修改配置Nginx方法如下(这里也可以将default.conf改成.bak,然后新建一个carton.conf文件即可):

server {
    listen 80;
    server_name 192.168.1.168; # 这是HOST机器的外部域名,用地址也行

    location / {
        proxy_pass http://127.0.0.1:8080; # 这里是指向 gunicorn host 的服务地址
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

然后输入:systemctl restart nginx 重启nginx,即可在浏览器中看到hello world的显示,表示配置成功。

注:本篇就将环境配置基础内容记录完毕,后续涉及到具体的开发环境的配置和自启动部分,后续更新。

局域网图片网站制作:项目规划


无客户端编程,我个人觉得是一个未来的趋势,特别是浏览器已经成为一个强大的入口时,那些越来越平常的需求,已经不足以支撑客户去安装和下载一个客户端,且站在可移植性和开发难度上讲,适配主流的浏览器比起适配主流的设备要容易的多,因此有了这一计划。

目标

  1. 建立一个方便浏览图片的网站,但是基于局域网,原因稍后说明。
  2. 主要匹配手机端,方便手机和平板查看。

主要功能摘要

  1. 主要存在有文件分类夹预览页,缩略图页及查看页三个页面。
  2. 图片需要预加载,切换速度要跟上浏览速度。
  3. 支持全屏模式,并且在全屏模式有菜单切换上下页,返回,后续增加浏览
  4. 不支持前端上传,但支持后台FTP上传。

方案及实施

  1. 采用虚拟机Virtual-Box建立服务器端,预计采用centOS ,搭建好的centOS的虚拟包会上传到本服务器或者百度云。
  2. 由于没有数据库,而且内容简单,计划采用python来进行实施。
  3. 按照性能要求,服务器端的应用采用Flask+Nginx的方式进行。
  4. 所有源代码将会开源到github,此博客将会更新所有的项目开发步骤。

几点问题释疑

为何采用局域网?

因为暂时不想考虑网络安全,高并发,数据压缩和效率的问题,因为局域网有高带宽和低并发的特点,因此要简单很多。

为何采用CentOS+Flask+Nginx?

Flask是目前比较熟悉的轻量级的Web框架,Nginx相对比较快速而且轻便,而centOS传说十分的稳定。

centOS我还没用,不知道好不好弄。也是头一次尝试。


其他有必要后续补充

Python Flask后台常见操作记录。


在使用flask作为服务器后端时,常用的操作记录如下:

1. requirements.txt生成,virtualenv 环境下输入以下内容:

pip freeze >requirements.txt

2. 数据库初始化配置指令:

./manage.py db init 
./manage.py db migrate -m "initial migration" 
./manage.py deploy

3. SQLACHMERY 操作说明:

进入

./manage.py shell

操作某个表的中的元素:

user = User.query.all() # -- 选中所有单元,形成一个list,然后通过下述方式进行操作
user[0].email # -- 选中某个单元,操作所有的成员元素
query.filter_by(id=0) #--方式先过滤再操作。

4. 数据库更新的指令:

python app.py db migrate
python app.py db upgrade

Python Flask微框架安装与基础说明


Flask是一个用python写成的微框架,能用简单代码实现最基本的web服务器端。一般在服务器上使用python都会先建立一个python的虚拟环境。

python 虚拟环境

mkdir myenv
python3 -m venv myenv  # 创建虚拟环境,需要先建立文件夹。

:建立虚拟环境可以保证安装模块不受系统权限影响,且不影响系统的python环境。

source  myvenv/bin/activate  # 进入虚拟环境。
./myvenv/bin/python xxxx.py #直接调用虚拟环境的python

:也可以使用绝对路径的python 指令来调用虚拟环境的python,常用在脚本启动中。

deactivate  # 退出虚拟环境(在虚拟环境下输入)

python包管理工具pip和Flask安装。

  • python常用pip做为包管理工具,在ubuntu按照如下方式安装pip

sudo apt-get install python-pip

  •  安装好pip后安装flask就比较简单了,输入如下代码即可。

pip install Flask

若需要批量安装输入 pip install -r common.txt

common.txt 写明需要安装的包和版本,example:

Flask==0.10.1
Flask-Bootstrap==3.0.3.1
Flask-Migrate==1.1.0
Flask-SQLAlchemy==1.0
Flask-Script==0.6.6
Flask-WTF==0.9.4
Jinja2==2.7.1
Werkzeug==0.9.4

实际使用过程中,按照需求,去寻找对应的modules,按照pip install的方式安装到你的虚拟环境中,就可以开始你的flask之旅了。

后续更新

一个简单的漫画网站。