之所以说django适合初学者,是因为其官方的文档足够细致(django/docs/intro/),再加上强大的django论坛,乖一点的话基本上不会出现太大的问题。。
英文好的童鞋可以直接去看官方文档——像我一样中文还得好好的看的同学,我们继续:
首先,有灰常善良的前辈在官方文档的基础上用中文写了django book2供我们学习
http://www.iteedu.com/webtech/python/djangocn2/chapter01.php
但是仅完全适用于django1.8之前的版本
万幸的是,后来的版本虽有不同,但基本上再结合官方文档就么有问题啦(废话….)咳咳。。楼主在这里要讲的,就是在具体学习过程中会遇到的一些初看迷雾茫茫再看简单的一逼但灰常磨时间的问题——楼主的版本是1.10
好 吐槽完毕,下面进入正题(不要打我。。)——
问题:
1.模板加载
当我们开始建立自己的view模板时,为了避免在每次引入模板时都重复输入相同的(硬编码)模板位置和加载模板时调用的大量open()、fp.read()、fp.close()…我们会选择 模板自加载 和 模板目录 的技巧
打开mysite/settings.py,找到‘TEMPLATES’下的‘DIRS’设置项,默认状态下其是一个空元组
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
该设置告诉 Django 的模板加载机制在哪里查找模板。 选择一个目录用于存放模板并将其添加到 DIRS 中:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/Users/yandongyu/django_py/mysite/templates',],
....
},
]
(一定要把路径写到‘[ ]’中并加单引号和逗号!!天知道我再整这一步时脑子里进了什么东东将‘[ ]’去掉直接填写路径。。。还找了半天错。。。TAT)
2.数据库配置
在数据库配置时,若选取MySQL,则需在mysite/setting.py中更改数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'books',
}
}
“ENGINE”即数据库引擎名称,填写自己选用的数据库就好
django.db.backends.sqlite3
django.db.backends.mysql
django.db.backends.oracl
...
“NAME”意为建立的数据库文件名,例:MySQL下建立books数据库,即填写books
3.安装mysql for python
要注意的是无论选择使用哪个数据库服务器,都必须下载和安装对应的数据库适配器。 访问下表中“所需适配器”一栏中的链接,可通过互联网免费获取这些适配器。
数据库 | 适配器 |
---|---|
PostgreSQL | psycopg 1.x版, http://www.djangoproject.com/r/python-pgsql/1/ |
PostgreSQL | psycopg 2.x版, http://www.djangoproject.com/r/python-pgsql/ |
MySQL | MySQLdb , http://www.djangoproject.com/r/python-mysql/. |
SQLite | 如果使用Python 2.5+则不需要适配器。 否则就使用 pysqlite , http://www.djangoproject.com/r/python-sqlite/ |
Oracle | cx_Oracle , http://www.djangoproject.com/r/python-oracle/ |
下载好适配器后进行安装
$ wget https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip
$ unzip MySQL-python-1.2.5.zip
$ sudo python setup.py install //进入MySQL-python-1.2.5后再执行这一句
可能会提示EnvironmentError: mysql_config not found。
因为没有安装开发工具包,所以找不到mysql_config文件,执行:
$sudo wget install libmysqld-dev
安装好后,通过终端在django/mysite下输入:
$python manage.py migrate
若相关模块/库都正确安装,django会创建以下列表:
mysql> show tables;
+—————————-+
| Tables_in_dmyz |
+—————————-+
| auth_group
| auth_group_permissions
| auth_permission
| auth_user
| auth_user_groups
| auth_user_user_permissions
| django_admin_log
| django_content_type
| django_migrations
| django_session
+—————————-+
10 rows in set (0.00 sec)