Ubuntu and Django with Mysql4.1学习笔记
1.下载安装。
添加Ubuntu安装源:
sudo gedit /etc/apt/sources.list
deb http://ubuntu.cn99.com/ubuntu/ edgy main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ edgy-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ edgy-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ edgy-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ edgy main restricted universe multiverse
下载Mysql4.1并配置数据库:
sudo apt-get install mysql-server-4.1
$sudo mysql
mysql>create database djangos;
mysql>quit
下载python-mysqldb:
sudo apt-get install python-mysqldb
下载setup-tools:
sudo apt-get install python-setuptools
下载Django v0.95并安装:
解压Django,进入目录,输入sudo python setup.py install
2.新项目。
2.1进入某个目录输入命令:django-admin.py startproject myprojects,将在该目录下创建myprojects,这个目录的结构如下:
myprojects/
__init__.py
manage.py
settings.py
urls.py
各文件的含义如下:
* "__init__.py":一个空文件,它的作用就是告诉Python,这个目录是一个Python package。
* "manage.py":修改它会在各个方面影响当前项目。
* "settings.py":项目设置。
* "urls.py":项目的URL集。
2.2修改settings.py如下部分:
DATABASE_ENGINE = 'mysql' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'djangos' # Or path to database file if using sqlite3.
DATABASE_USER = 'root' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = 'localhost' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '3306' # Set to empty string for default. Not used with sqlite3.
2.3启动服务:
进入项目目录,输入命令:python manage.py runserver。
出现如下信息则说明服务启动成功。
Validating models...
0 errors found.
Django version 0.95, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).
使用命令python manage.py runserver 8888可以以指定的端口号8888启动服务。
使用Firefox打开网页:http://localhost:8000 即可看到项目页面。
图:
提示1:在编辑settings.py时,注意一下文件末尾的"INSTALLED_APPS",这个变量保存的是在这个Django项目中使用的Django应用程序。这些应用程序能够用于不同的项目,也可以打包发布。
默认情况下,"INSTALLED_APPS"包含了下面的应用程序,它们都是Django开发的。
* “django.contrib.auth“ -- 认证系统。
* “django.contrib.contenttypes“ -- 内容类型的框架。
* “django.contrib.sessions“ -- session framework。
* “django.contrib.sites“ -- 用于管理多个站点的框架。
提示2:Projects vs. apps
project 和 app有什么区别? 一个app是一个Web应用程序,它实现某一类功能,象blog,又比如投票管理系统。而一个project是一个集合,包括了一系列的设定和apps,它是一个网站。一个project包括许多apps,而一个app也可以在多个projects中使用。
提示3:创建app
通过命令:python manage.py startapp polls来开启一个新app-polls。目录结构如下:
polls/
__init__.py
models.py
views.py
3.动态网页
使用的例子是:在网页上显示当前日期时间。这个例子显示的内容是动态的,同时内容的改变取决于计算返回的结果。这个页面只是显示服务器返回的结果,并不涉及到数据库操作和用户输入。
提示1:view function:用于发送WEB request和接收WEB response的Python函数。response可以是网页的HTML内容或者是XML文档,或者是其他什么。