Django初探
django document 提供了非常详尽的资料:https://docs.djangoproject.com/en/1.8/。 按照django document推荐,搭建开发环境:使用vagrant搭建了ubuntu 14.1系统,python和django版本分别是3.4.3和1.8.2,使用pyenv,三步法快速配置:
git clone https://github.com/yyuu/pyenv.git ~/.pyenv 并添加环境变量: export PYENV_ROOT="$HOME/.pyenv” ; export PATH="$PYENV_ROOT/bin:$PATH”
pyenv install 3.4.3; pyenv global 3.4.3
pip install django
初识Django
Django同样采用MVC设计模式,也成为MTV,MTV分别指:Model、Template、View。即模型(数据层)、模板(表现层)、视图(业务逻辑层)。顾名思义,Model负责的是数据库的相关操作,Template负责展现哪些数据(rails中更加注重如何展现数据)。
django安装好之后,运行django-admin.py startproject mysite 在当前文件夹下创建一个项目,项目名称为mysite,创建成功后,会生成如下文件:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
其中,manage.py是对jango-admin.py的一个扩展,在jango-admin.py的基础上,会额外添加项目中的settings.py,加载项目设置。
settings.py文件中,存放了一些元组和列表,以及一些常量的设定。如INSTALLED_APPS元组指定了项目中需要安装的功能模块,TEMPLATES是一个存放模板信息的字典,DATABASE指定使用的数据库等,详细配置信息:https://docs.djangoproject.com/en/1.8/ref/settings/
urls.py文件中,存放一个url的列表,每个元素都是一个url对象,传入的两个参数为正则表达式的pattern,以及对应的页面
wsgi.py文件中包含一些工程的解析设置。wsgi建立在CGI基础上,所以该文件应该和web服务器相关。
数据库配置
django默认使用sqlite数据库,如果需要使用其他数据库,需要在settings.py中修改设置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': '127.0.0.1', 'PORT': '5432', } }
来自jango document
其中,如果使用MySQL,ENGINE应该设置为:’django.db.backends.mysql’ ,如果是sqlite,数据库对应为一个文件,在设置中对应为NAME的值,如果是MySQL或者PostgreSQL,则NAME的值应该为数据库的名字,所以必须先创建数据库。而USER,PASSWORD是登陆到数据库的用户名密码,HOST和PORT则是数据库对应的地址和端口。
如果使用MySQL,应该同时将数据库名字添加到INSTALL_APPS中,以便Model访问
这里由于MySQL-python并不支持python3,如果使用python3安装,则会报错:ImportError: No module named ‘ConfigParser',因为python3中该模块已经改名为configparser,解决方法为:安装mysql-client,http://stackoverflow.com/questions/14087598/python-3-3-importerror-no-module-named-configparser
配置好settings.py后,要在MySQL中创建响应的数据库
通过在MySQL中查询:show global variables like ‘ports’,可以查看到数据库使用的端口,mysql默认应该是3306。
create database mysite 创建名为mystic的数据库
并且修改settings.py中的DATABASES和INSTALL_APPS。
使用python manage.py check 检查是否有语法错误: System check identified no issues (0 silenced). 基本配置成功