Django学习笔记

一直想学个服务器开发语言以便自己独立开发API服务器,之前想学PHP不过看了点不怎么感兴趣。加上小伙伴们都推荐Django,今天就尝试看看。

Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架。使用 Django,我们在几分钟之内就可以创建高品质、易维护、数据库驱动的应用程序。
Django 框架的核心组件有:

  • 用于创建模型的对象关系映射
  • 为最终用户设计的完美管理界面
  • 一流的 URL 设计
  • 设计者友好的模板语言
  • 缓存系统

http://www.oschina.net/p/django/

安装

安装PIP

1
2
3
sudo apt-get update
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip

安装Django

1
2
pip install Django

开始第一个项目

创建Django项目只需要一条命令,如创建一个apiserver项目

1
django-admin.py startproject apiserver

Django在当前目录下创建一个apiserver文件夹,其目录结构如下

1
2
3
4
5
6
7
└── apiserver
├── apiserver
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py
  • init.py:Python特性,可以是空文件,表明这个文件夹是一个可以导入的包。
  • settings.py:配置文件,本文主要修改数据库信息、模板目录、加载模块的信息。
  • url.py:URL配置文件,指定函数与URL的映射关系。
  • wsgi.py:本文中不会使用,nginx/apache+wsgi在生产环境中运行Django时使用。

创建完成后可以通过命令python manage.py runserver,由于我们是创建在云服务器,所以还需要开放外网访问才能访问到该页面,则用下面的命令。

1
python manage.py runserver 0.0.0.0:8080

若看到一下提示则表示需要用python manage.py migrate命令使设置生效。

1
2
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

设置生效后再次运行runserver命令。访问http://服务器IP:8000可以看到安装成功提示。

连接Mysql数据库

服务器上配置Mysql数据教程参考How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu
编辑配置文件/apiserver/apiserver/settings.py,找到DATA-BASES的配置,并修改为Mysql。

1
2
3
4
5
6
7
8
9
10
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #设置为mysql数据库
'NAME': 'Django', #mysql数据库名
'USER': 'root', #mysql用户名,留空则默认为当前linux用户名
'PASSWORD': 'rootPassword', #mysql密码
'HOST': '', #留空默认为localhost
'PORT': '', #留空默认为3306端口
}
}

Django(Python)操作MySQL依赖第三方包,所以要先安装MySQL for Python。

1
2
sudo apt-get install libmysqld-dev
sudo pip install MySQL-python

安装完成后再次运行Migerate操作。如果相关模块安装正确,则可以看到以下的表结构。

mysql> SHOW TABLES;
+