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同学的热心指点!!