一、关于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.tar

  2、安装

    在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)

      mkdir /usr/local/python3

    开始编译安装

      ./configure --prefix=/usr/local/python3;make;make install
 
  3、更改bin文件。

    此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字

      mv /usr/bin/python /usr/bin/python_old

    再建立新版本python的链接

      ln -s /usr/local/python3/bin/python3 /usr/bin/python

    这个时候输入

      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搭建及源码分析(一)的更多相关文章

  1. Django搭建及源码分析(三)---+uWSGI+nginx

    每个框架或者应用都是为了解决某些问题才出现旦生的,没有一个事物是可以解决所有问题的.如果觉得某个框架或者应用使用很不方便,那么很有可能就是你没有将其使用到正确的地方,没有按开发者的设计初衷来使用它,当 ...

  2. Django搭建及源码分析(二)

    上节针对linux最小系统,如何安装Django,以及配置简单的Django环境进行了说明. 本节从由Django生成的manage.py开始,分析Django源码.python版本2.6,Djang ...

  3. Django如何启动源码分析

    Django如何启动源码分析 启动 我们启动Django是通过python manage.py runsever的命令 解决 这句话就是执行manage.py文件,并在命令行发送一个runsever字 ...

  4. Django之DRF源码分析(二)---数据校验部分

    Django之DRF源码分析(二)---数据校验部分 is_valid() 源码 def is_valid(self, raise_exception=False): assert not hasat ...

  5. Django rest framework源码分析(3)----节流

    目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...

  6. Django rest framework源码分析(1)----认证

    目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...

  7. Django rest framework 源码分析 (1)----认证

    一.基础 django 2.0官方文档 https://docs.djangoproject.com/en/2.0/ 安装 pip3 install djangorestframework 假如我们想 ...

  8. django CBV视图源码分析

    典型FBV视图例子 url路由系统 from django.conf.urls import url from django.contrib import admin from luffycity.v ...

  9. Django rest framework源码分析(一) 认证

    一.基础 最近正好有机会去写一些可视化的东西,就想着前后端分离,想使用django rest framework写一些,顺便复习一下django rest framework的知识,只是顺便哦,好吧. ...

随机推荐

  1. java反射1

    一.Class部分 加载类的几种方式 // 1. Class clazz = Class.forName("com.wzh.test.reflect.Person"); // 2. ...

  2. ruby字符串学习笔记5

    1获取字符串某部分 s = "My kingdom for a string!" s.slice(3,7) # kingdom s[3,7] # kingdom s[/.ing/] ...

  3. jhat中的OQL(对象查询语言)

    http://blog.csdn.net/wanglha/article/details/40181767 jhat中的OQL(对象查询语言) 如果需要根据某些条件来过滤或查询堆的对象,这是可能的,可 ...

  4. 20145305 《Java程序设计》第2周学习总结

    教材学习内容总结 1.boolean类型可表示true与false 2.储存值超类型范围会出现溢值 3.变量在命名时不可以使用数字作为开头,不可以使用一些特殊字符,不可以与JAVA关键词同名,不可以与 ...

  5. String Format for DateTime

    This example shows how to format DateTime using String.Format method. All formatting can be done als ...

  6. C Primer Plus(第五版)5

    第5章 运算符,表达式和语句 5.1 循环简单 程序清单 5.1 显示了一个示例程序,该程序做了一点算术运算来计算穿 9 码鞋的脚用英寸表示的长度.为了增加你对循环的理解,程序的第一版演示了不使用循环 ...

  7. 什么是条带化(striping) ?(转载)

    条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法.简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法. 许多情况下,这是通过硬件控制器来完成的. ...

  8. Shell | grep with n following lines

    'foo' sample.txt ➜ dex-method-counts git:(master) ./dex-method-counts ~/Downloads/n.apk | 'hui' hui: ...

  9. css3实现小米商城鼠标移动图片上浮阴影效果

    今天在编程爱好者编码库看见一个好玩的程序,代码如下. <!DOCTYPE html> <html> <head>     <meta charset=&quo ...

  10. 一点点seo

    Search Engine Optimization(搜索引擎优化 ),是较为流行的网络营销方式. 主要目的是增加特定关键字的曝光率.有站外SEO和站内SEO.通过了解各类搜索引擎如何抓取互联网页面. ...