Chinaunix首页 | 论坛 | 博客
  • 博客访问: 203912
  • 博文数量: 23
  • 博客积分: 534
  • 博客等级: 下士
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-20 16:27
文章分类

全部博文(23)

文章存档

2015年(1)

2012年(21)

2011年(1)

分类: 系统运维

2012-01-10 23:07:28

python的web框架百花齐放,各种各样,但用的最多的还是Django,所以我就选择了Django来搭建,下面就是我的搭建流程。

一、安装python,我的linux上已经安装好了python,就直接跳过去啦~
二、从Django的官网下载tgz包:。
    我先选了第一个,下载安装,按照官网的做法 python setup.py install,结果提示语法错误。
    以为版本太低了,就下了alpha安装,还是报错。。。
    没办法了,就用svn copy最新的。
    svn co Django
    cd Django
    sudo python setup.py install
    如果提示缺少setuptools还要下载安装setuptools(建议提前安上,因为在安装MySQL for Python的时候也会用到)。
    终于可以安装了。。。但是有一堆错误提示。。。
    又以为是python版本不是最新的,又把python的版本升到了最新。。结果还是一样。
    最后才找到正确答案,去官网上看了一下,Django 1.4  要求 Python的版本至少为 2.5.然后就明白了,我之前都是用python3的版本来安装的,python3和python2的差别还是很大的,用python2来安装就没问题了,所以就执行 python2 setup.py install,终于正常安装了。
三、新建项目。
    django-admin.py startproject mysite
    在但前目录就会生成名为mysite的文件夹,里面有一下文件:
    urls.py
    settings.pyc
    settings.py
    manage.py
    __init__.pyc
    __init__.py
    __init__.py/__init__.pyc:可以是空文件,只是表明这个文件夹是一个可以导入的包,这个文件在安装配置时不会用到。
    settings.py/settings.pyc:配置文件,配置Django的一些信息,最主要是数据库信息、加载模块的信息。
    manage.py:命令行工具,实现与Django之间的交互。
四、启动web服务器
    python2 manage.py runserver
    没有错误提示,就正常启动啦。注意,这里还是得用python2来启动哦。
    这样启动的服务器只能本机访问,要想外网也能访问到,或者更换端口,那就上面的命令就改成这样子:
    python2 manage.py runserver 0.0.0.0:8080
五、接下来要让Django支持mysql数据库,先安装mysql-python。
    svn co mysql-python
    cd mysql-python
    编辑site.cfg,把mysql_config这一项改成你的mysql_config,比如说我的是 /usr/local/mysql/bin/mysql_config 。
    然后编译:
    python2 setup.py build
    再安装:
    sudo python2 setup.py install。
    验证是否安装成功:
    在终端执行:
    python2
    >>>import MySQLdb
    没有报错,就说明成功了。
六、django连接MySQL
    进入mysql新建一个数据库Blog,将settings.py改成
    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #设置为mysql数据库
        'NAME': 'blog',  #mysql数据库名
        'USER': 'root',  #mysql用户名,留空则默认为当前linux用户名
        'PASSWORD': '',   #mysql密码
        'HOST': '',  #留空默认为localhost
        'PORT': '',  #留空默认为3306端口
    }
}
保存重启服务,报错:
Unhandled exception in thread started by >
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 91, in inner_run
    self.validate(display_num_errors=True)
  File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 266, in validate
    num_errors = get_validation_errors(s, app)
  File "/usr/lib/python2.7/site-packages/django/core/management/validation.py", line 23, in get_validation_errors
    from django.db import models, connection
  File "/usr/lib/python2.7/site-packages/django/db/__init__.py", line 40, in
    backend = load_backend(connection.settings_dict['ENGINE'])
  File "/usr/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/usr/lib/python2.7/site-packages/django/db/utils.py", line 92, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/usr/lib/python2.7/site-packages/django/db/utils.py", line 24, in load_backend
    return import_module('.base', backend_name)
  File "/usr/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/usr/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 25, in
    from MySQLdb.converters import conversions
ImportError: cannot import name conversions

最后才发现原来我的版本用的是1.4,setting.py的格式和以前的不一样,用以前的格式设置:
DATABASE_ENGINE ='mysql'       
DATABASE_NAME = 'djangodb'  
DATABASE_USER = 'root' .
DATABASE_PASSWORD = '8718' 
DATABASE_HOST = ''   
DATABASE_PORT = ''
这样就可以正常连接了。
在这里要特别感谢ipython同学的热心指点!!
阅读(17009) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~