Django搭建及源码分析(一)
一、关于Django以下两个站点,在使用方面有详细说明。
http://www.nowamagic.net/academy/part/13/286
http://www.w3cschool.cc/django/django-tutorial.html
以下是在centos6.0最小系统下,搭建Django的过程,默认Python版本2.6
二、安装Django
1、下载源码使用python setup.py install安装,下载时选择与python环境相兼容的版本。很多高版本的Django不下向兼容低版本的python,如1.7及以上版本不支持python2.6
2、或使用pip django install,但只能下载并安装最新版本的django,无法根据当前python版本选择兼容的版本。
3、也可使用easy_install django安装,但实际报失败,未定位原因。
(easy_install安装:下载ez_setup-0.9.tar.gz,使用python setup.py install安装,pip安装:easy_install安装后,easy_install pip)
三、确认是否安装成功
1、执行python,进入python交互环境,执行import django,成功;
2、执行django-admin命令,可以查看到help信息。
四、创建一个项目,并访问该项目,确认系统配置是否正确。
django-admin.py startproject MyDjProj
进入MyDjProj目录后,执行:python manage.py runserver 0.0.0.0:80
0.0.0.0:是保证其它设备可以通过访问ip地址来访问django,MyDjProj。如在windows环境下,通过浏览器访问10.10.50.109,可访问。
80:是端口,可以使用其它端口。
**注:如果浏览器无法访问,检查iptable是否关闭。
如果浏览器访问正常,说明django环境搭建成功,更多django使用配置,即可参考一节中的两个站点详细说明。
五、安装数据库
Django默认使用sqlite3,如果想使用MySQL,需要安装MySQL-python,才可以通过Django框架使用MySQL。
基础环境安装mysql:包括,
mysql-5.1.47-4.el6.x86_64
mysql-devel-5.1.47-4.el6.x86_64
mysql-server-5.1.47-4.el6.x86_64
mysql-libs-5.1.47-4.el6.x86_64
安装MySQL-python,使用:
pip install MySQL-python
安装前,必须保证系统已安装python-devel的包,否则会报缺少python相关的.h文件,如"_mysql.c:29:20: error: Python.h: No such file or directory"。
(理论上应该也需要安装mysql-devel)
六、如果安装最新版本Django,必须先升级python。
1、首先下载源tar包
可利用linux自带下载工具wget下载,如下所示:
wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz
或从网上下载Python-3.1.2.tar.bz2版本,下载完成后到下载目录下,解压
bunzip2 Python-3.1.2.tar.bz2 tar -xvf Python-3.1.2.tar2、安装
在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)
mkdir /usr/local/python3
开始编译安装
./configure --prefix=/usr/local/python3;make;make install此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字
mv /usr/bin/python /usr/bin/python_old
再建立新版本python的链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
这个时候输入
就会显示出python的新版本信息。
PS:如果不建立新安装路径python3,而是直接默认安装,则安装后的新python应该会覆盖linux下自带的老版本,也有可能不覆盖,具体看安装过程了,这个大家可以自己试验下,当然如果还想保留原来的版本,那么这种方法最好不过了。
4、在python3.4版本中easy_install及pip工具已默认安装,使用此工具可安装自动下载并安装发布的python项目/工具。
easy_install只提供了安装功能,pip提供了install及uninstall。
5、安装时可能遇到的问题
- 报错:“Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2 _dbm _gdbm
_lzma _sqlite3 _tkinter
readline
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
”
可暂忽略,但后续如果需要使用这些模块时,需要安装模块,重新安装python,所以,最好是将这些模块都安装后,再进行后续工作。
模块对应包如下:
| 模块 | 依赖 | 说明 |
| _bsddb | bsddb | Interface to Berkeley DB library。Berkeley数据库的接口 |
| _curses | ncurses | Terminal handling for character-cell displays。 |
| _curses_panel | ncurses-devel | A panel stack extension for curses。 |
| _sqlite3 | sqlite-devel | DB-API 2.0 interface for SQLite databases。SqlLite,CentOS可以安装sqlite-devel |
| _ssl | openssl-devel | TLS/SSL wrapper for socket objects。 |
| _tkinter | tk-devel | a thin object-oriented layer on top of Tcl/Tk。如果不使用桌面程序可以忽略TKinter |
| bsddb185 | old bsddb module | 老的bsddb模块,可忽略。 |
| bz2 | bzip2-devel | Compression compatible with bzip2。bzip2-devel |
| dbm | bsddb(安装gdbm-devel即可) | Simple “database” interface。 |
| dl | N/A | Call C functions in shared objects.Python2.6开始,已经弃用。 |
| gdbm | gdbm-devel.i686 | GNU’s reinterpretation of dbm |
| imageop | N/A | Manipulate raw image data。已经弃用。 |
| readline | readline-devel | GNU readline interface |
| sunaudiodev | N/A | Access to Sun audio hardware。这个是针对Sun平台的,CentOS下可以忽略 |
| zlib | Zlib | Compression compatible with gzip |
| _lzma | xz-devel | compression utils |
- 报错“Ignoring ensurepip failure: pip 6.0.8 requires SSL/TLS”,需要安装openssl-devel包。
- yum命令执行失败。由python2.6升级到python3.4版本,会遇到yum命令执行失败的问题,是由于/usr/bin/yum命令是python解释
器来解析的,而python这块的兼容性不太好,升级后,会遇到语法错误执行失败。解决方法一:升级yum;解决方法二:修改/usr/bin/yum,
将第一行,修改为#!/usr/bin/python2.6 - 如果系统时间不正确,那么有可能在make的时候循环进行./configure的操作,无法进入真正的make环节。
Django搭建及源码分析(一)的更多相关文章
- Django搭建及源码分析(三)---+uWSGI+nginx
每个框架或者应用都是为了解决某些问题才出现旦生的,没有一个事物是可以解决所有问题的.如果觉得某个框架或者应用使用很不方便,那么很有可能就是你没有将其使用到正确的地方,没有按开发者的设计初衷来使用它,当 ...
- Django搭建及源码分析(二)
上节针对linux最小系统,如何安装Django,以及配置简单的Django环境进行了说明. 本节从由Django生成的manage.py开始,分析Django源码.python版本2.6,Djang ...
- Django如何启动源码分析
Django如何启动源码分析 启动 我们启动Django是通过python manage.py runsever的命令 解决 这句话就是执行manage.py文件,并在命令行发送一个runsever字 ...
- Django之DRF源码分析(二)---数据校验部分
Django之DRF源码分析(二)---数据校验部分 is_valid() 源码 def is_valid(self, raise_exception=False): assert not hasat ...
- Django rest framework源码分析(3)----节流
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...
- Django rest framework源码分析(1)----认证
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...
- Django rest framework 源码分析 (1)----认证
一.基础 django 2.0官方文档 https://docs.djangoproject.com/en/2.0/ 安装 pip3 install djangorestframework 假如我们想 ...
- django CBV视图源码分析
典型FBV视图例子 url路由系统 from django.conf.urls import url from django.contrib import admin from luffycity.v ...
- Django rest framework源码分析(一) 认证
一.基础 最近正好有机会去写一些可视化的东西,就想着前后端分离,想使用django rest framework写一些,顺便复习一下django rest framework的知识,只是顺便哦,好吧. ...
随机推荐
- 30岁IT男连续工作一个月 突然失聪
连续开发软件一个月,30 岁男子突然听不见声音了.近日,浙江省中山医院针灸科主任高宏主任中医师接诊了这名患者.高主任说,现在很多年轻人工作压力大,得突发性耳聋的越来越多,这种病听着不是威胁生命的大病, ...
- solr学习之添加文档
一.开篇语 其实Solr就是一个你可以通过他来查询文档的东西,他整个都是基于Document的,那么这些Document从何而来列? 当然是我们给他,而这些来源就包括了:数据库文件,XML,Json ...
- perl处理含有中文字符的json编码
例子:1. 有php的 json函数生成的中文串 [root@tts177:/tmp]$/opt/php/bin/php -r 'echo json_encode(Array("a" ...
- java获取数据库的列名,类型等信息
当你使用和学习JDK的时候,可以查看并学习它所提供给你的两个ResultSetMetaData 和DataBaseMetaData类的源码并很好的了解它们的实现原理和思路,JDBC中提供有两种源数据, ...
- PS 的参考线
新建参考线 菜单:"视图-新建参考线", 直接输入想要位置的参考线. 参考线对齐 按住Shift键拉辅助线,辅助线会自动对齐到当前标尺的刻度上. 按住Alt ...
- 【译】深入理解python3.4中Asyncio库与Node.js的异步IO机制
转载自http://xidui.github.io/2015/10/29/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3python3-4-Asyncio%E5%BA%93% ...
- Hbase基础操作
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'tablename'
- java——操作文件
Java文件操作,共实现了文件复制(单个文件和多层目录文件),文件移动(单个文件和多层目录文件),文件删除(单个文件和多层目录文件),文件压缩 (单个文件),文件解压(单个文件),文件分割(将一个大文 ...
- (Loadrunner)Abnormal termination, caused by mdrv process termination.(转)
Load generator跑了太多用户导致CPU和内存爆满,进程无法处理请求 确认自定义的代码是否释放内存 合理调整或增加思考时间 关闭extended log 尽量避免使用Load generat ...
- HDU2063_过山车_C++
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2063 又是一道二分图匹配的裸题,直接上匈牙利算法 注意一点它末尾的0结束,是标志着有多组数据……坑…… # ...