您的位置:首页 > 编程语言 > Go语言

Django相关

2016-05-18 17:28 330 查看

一、二进制图片输出网页

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

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命令来使修改生效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Django