Django
一個開放源代碼的Web應用框架,由Python寫成。採用了MVC的軟件設計模式,即模型M,視圖V和控制器C。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容爲主的網站的。並於2005年7月在BSD許可證下發布。
1、安裝好python django(這步略過,安裝過程自行完成,網上安裝步驟很多),安裝的版本不同而生成的文件目錄也不同,這裏用的是1.6.5的版本的django;
[root@node3 ~]# django-admin.py --version 1.6.5
2、創建django項目
[root@node3 python]# django-admin.py startproject mysite2 [root@node3 python]# cd mysite2/ [root@node3 mysite2]# ll total 8 -rwxr-xr-x. 1 root root 250 Jun 9 22:20 manage.py drwxr-xr-x. 2 root root 4096 Jun 9 22:20 mysite2
以上的是1.6.5版本生成的一個manage.py和一個目錄mysite2,如是1.3.7的版本的話生成的是以下的格式:
[root@node1 python]# cd mysite2/ [root@node1 mysite2]# ll total 16 -rw-r--r--. 1 root root 0 Jun 10 10:19 __init__.py -rw-r--r--. 1 root root 503 Jun 10 10:19 manage.py -rw-r--r--. 1 root root 5203 Jun 10 10:19 settings.py -rw-r--r--. 1 root root 568 Jun 10 10:19 urls.py
3、這裏我們還是以1.6.5的版本爲例說明問題,如果我們需要連接數據庫,那我們需要去修改mysite2文件夾裏的settings.py文件;
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 需要連接什麼數據庫 'NAME': 'mysite2', # 需要連接的數據庫名 'USERNAME': 'root', # 連接數據庫的用戶名 'PASSWORD': 'linux', # 連接數據庫的密碼 'PORT': '3306', # 端口 } } 我們還可以改一下時區和使用的語言 LANGUAGE_CODE = 'en-zh' # 中文 TIME_ZONE = 'Asia/Shanghai' # 亞洲,上海
4、之後就可以啓動django了,切換到manage.py目錄文件下,如不寫0.0.0.0:8000(監聽所有地址),那默認是監聽127.0.0.1:8000這個套接字;
[root@node3 mysite2]# python manage.py runserver 0.0.0.0:8000
5、然後就可以在頁面上訪問了,用本機的地址加端口就可以訪問:
http://10.17.1.151:8000/
################ 以下是新建一個APP的簡單設置步驟 ############
1、使用manage.py創建一個APP;
[root@node3 mysite2]# python manage.py startapp myapp [root@node3 mysite2]# ll total 12 -rwxr-xr-x. 1 root root 250 Jun 9 22:20 manage.py drwxr-xr-x. 2 root root 4096 Jun 10 01:47 myapp drwxr-xr-x. 2 root root 4096 Jun 9 23:29 mysite2
2、爲了使 Django 認識到新應用程序的存在,還需要向 settings.py 文件中的 INSTALLED_APPS 添加一個條目。
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', 添加新建的app )
3、切換到myapp中,創建一個模型,也就是在moduls.py文件中新建一個類,做個類代表對應數據庫中的一張表;
[root@node3 myapp]# vim models.py from django.db import models class Teacher(models.Model): name = models.CharField(max_length=30) gender = models.CharField(max_length=5) age = models.CharField(max_length=5) job = models.CharField(max_length=50) def __unicode__(self): return "%s, %s, %s, %s" % (self.name, self.gender, self.age, self.job) class Student(models.Model): name = models.CharField(max_length=30) gender = models.CharField(max_length=5) age = models.CharField(max_length=5) course = models.CharField(max_length=50) def __unicode__(self): return "%s, %s, %s, %s" % (self.name, self.gender, self.age, self.course)
## 創建完所需要的表之後就可以使用下面命令進行數據庫的同步了:
[root@node3 mysite2]# python manage.py syncdb Creating tables ... Creating table django_admin_log Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_groups Creating table auth_user_user_permissions Creating table auth_user Creating table django_content_type Creating table django_session Creating table myapp_teacher You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (leave blank to use 'root'): # admin的用戶帳號 Email address: [email protected] Password: # 這個設置是登錄admin是的登錄密碼 Password (again): Superuser created successfully. Installing custom SQL ... Installing indexes ... Installed 0 object(s) from 0 fixture(s)
## 登錄mysql數據庫就可以查看到生成的表了:
MariaDB [(none)]> use mysite2; Database changed MariaDB [mysite2]> show tables; +----------------------------+ | Tables_in_mysite2 | +----------------------------+ | auth_group | | auth_group_permissions | | auth_permission | | auth_user | | auth_user_groups | | auth_user_user_permissions | | django_admin_log | | django_content_type | | django_session | | myapp_student | # 下面這兩個是我們需創建的表student和teacher | myapp_teacher | +----------------------------+ 11 rows in set (0.00 sec) MariaDB [mysite2]> desc myapp_student; +--------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(30) | NO | | NULL | | | gender | varchar(5) | NO | | NULL | | | age | varchar(5) | NO | | NULL | | | course | varchar(50) | NO | | NULL | | +--------+-------------+------+-----+---------+----------------+ 5 rows in set (0.10 sec) MariaDB [mysite2]> desc myapp_teacher; +--------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(30) | NO | | NULL | | | gender | varchar(5) | NO | | NULL | | | age | varchar(5) | NO | | NULL | | | job | varchar(50) | NO | | NULL | | +--------+-------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
4、到這裏我們可以通過django的admin管理界面來添加,刪除,修改表中的信息,即在myapp目錄中的admin.py添加一個class類:
[root@node3 myapp]# vim admin.py from myapp.models import Student, Teacher class TeacherAdmin(admin.ModelAdmin): list_display = ( 'name', 'gender', 'age', 'job', ) class StudentAdmin(admin.ModelAdmin): list_display = ( 'name', 'gender', 'age', 'course', ) admin.site.register(Student, StudentAdmin) admin.site.register(Teacher, TeacherAdmin)
這個保存之後就可以在地址欄中輸入http://10.17.1.151:8000/admin來訪問到了,在這裏就直接可以操作數據庫表。