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中使用jquery ajax post数据出现403错误的解决办法(两种方法)
- django使用ajax post数据出现403错误如何解决
- windows+apache+mod_python配置django运行环境
- python Django连接MySQL数据库做增删改查
- django自定义Field实现一个字段存储以逗号分隔的字符串
- Django框架利用ajax实现批量导入数据功能
- python Django批量导入数据
- BootStrap扔进Django里的方法详解
- 在Python的Django框架中加载模版的方法
- 在Django中使用Sitemap的方法讲解
- 详解Django中的form库的使用
- Django中的CACHE_BACKEND参数和站点级Cache设置
- 剖析Django中模版标签的解析与参数传递
- Python中DJANGO简单测试实例
- Python的Django框架中的数据库配置指南
- 在Django的上下文中设置变量的方法
- 在Python的Django框架中编写编译函数
- 以一个投票程序的实例来讲解Python的Django框架使用
- 在Django的URLconf中进行函数导入的方法
- 在Python的Django框架中生成CSV文件的方法