Django相关

一、二进制图片输出网页

有时候我们的图片是通过代码生成的,比如二维码和处理过的图片,我们不需要将图片存储为文件即可直接输出文件到浏览器。
Django版本为1.9

#views.py文件
from django.http import HttpResponse
def my_image(request):
    img_data = open('F:/1.jpg','rb').read()
    return HttpResponse(img_data,content_type="image/jpeg")

#urls.py文件
urlpatterns = patterns('',
    (r'^image/$',my_image),
    )

可以尝试从数据库中读取小图标显示在网页。

二、部署环境搭建:

环境:阿里云平台,Ubuntu 14.04.2 LTS, Server version: Apache/2.4.7 (Ubuntu)
1、安装Apache2和mod_wsgi

sudo apt-get install apache2
# python2
sudo apt-get install libapache2-mod-wsgi
# python3
sudo apt-get install libapache2-mod-wsgi-py3

2、确认安装的apache版本号
apachectl -v
显示:
Server version: Apache/2.4.6(ubuntu)
3、修改ports.conf
/etc/apache2/ports.conf
在Listen 80下方添加Listen 9999 可以同时监听服务器9999端口
4、添加site-available
/etc/apache2/sites-available
此文件夹下添加mysite.conf文件mysite是自己为网站起得名字,内容为:

<VirtualHost *:9999>
    DocumentRoot /var/www/SinaCloud/SinaCloud
    Alias /static/ /var/www/SinaCloud/collected_static/
    <Directory /var/www/SinaCloud/SinaCloud>
        Require all granted
    </Directory>
    <Directory /var/www/SinaCloud/collected_static>
        Require all granted
    </Directory>
WSGIScriptAlias / /var/www/SinaCloud/SinaCloud/wsgi.py
</VirtualHost>

注:如果你的apache版本号是 2.2.x,用下面的代替“Require all granted”

Order deny,allow
Allow from all

5、建立Django代码库
将Django代码复制到任意位置,该位置需要添加到第4步的文件中(此处假设将代码放在了/var/www/ 目录下)
6、修改wsgi文件
在 import os 后添加下面代码

from os.path import join,dirname,abspath
PROJECT_DIR = dirname(dirname(abspath(__file__)))
import sys 
sys.path.insert(0,PROJECT_DIR)

7、 设置目录和文件权限
进入 /var/www/ 目录将代码库 mysite目录设置为755即可

chmod –R 755 mysite/

8、激活新网站
执行命令

a2ensite sitename 
# or
a2ensite sitename.conf

此命令会根据site-available下的sitename.conf在/etc/apache2/sites-enabled目录下建立sitename.conf文件
如果顺利,这样网站就搭建成功,未执行此步骤访问网站时会显示源代码。
通过x.x.x.x:9999可访问网站,9999为在ports.conf里设置的端口
9、静态文件
修改代码库主目录的mysite/mysite/settings.py文件,在最后一行即 STATIC_URL = ‘/static/’ 后插入:

STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')

collected_static 是apache收集静态文件的存放目录,这样设置,绝对路径是:

/var/www/mysite/collected_static/

然后运行python manager.py collectstatic命令,会将静态文件收集到collected_static。
此目录需要加到第4步的内容里才能生效。
10 . 总结
(1). 部署时文件对应关系:
sitename.conf —> wsgi.py—> settings.py—-> urls.py —-> views.py
(2). 每次修改后需要运行service apache2 reload命令来使修改生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值