25 Sep 2015
框架跟http交互方式两种方式:
框架解决的问题:
session & cookie
jsp?sessionid=xxsd12sdfsfds asp?sessionid=112321
pip install Django
mkdir AutoOps
cd AutoOps
django-admin startproject autoops
我们先运行它
python manage.py runserver
根据提示创建app
python manage startapp asset
完成第一个页面:
# 先配置settings INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'asset', )
编写views.py, vim asset/views.py:
# coding:utf-8 from django.http import HttpResponse def index(request): return HttpResponse('hello world')
配置urls.py vim autoops/urls.py:
from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^$', 'asset.views.index'), url(r'^admin/', include(admin.site.urls)), ]
启动:python manage.py runserver 0.0.0.0:8000
so easy!
再来看下Model和Admin的使用:
asset/models.py
# coding:utf-8 from django.db import models class Host(models.Model): STATUS_ITEMS = ( (1, "空闲"), (2, "使用中"), (3, "报废"), ) ip = models.GenericIPAddressField(verbose_name="主机IP") open_port = models.CharField(max_length=1000, verbose_name="开放端口") status = models.IntegerField(choices=STATUS_ITEMS, verbose_name="主机状态") created_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间") class Meta: verbose_name_plural = "主机"
asset/admin.py
# coding:utf-8 from django.contrib import admin from .models import Host # or from asset.models import Host admin.site.register(Host)
启动:python manage.py runserver, 注意提示:
You have unapplied migrations; your app may not work properly until they are applied. Run 'python manage.py migrate' to apply them.
运行: python manage.py migrate
访问:http://localhost:8000/admin
然后创建用户:
python manage.py createsuperuser admin admin
登录一下看看,一个完整的cms系统有了
为快速开发Web应用而生
Django中的重点是Model,围绕Model有很多成熟可用的功能
配置url dispatch
接受request,处理业务,返回response
两种方式:def vs class,初期使用def即可,middleware使用
类似于字符串的模板,使用Django内置的语法
处理页面表单
根据model直接生成对应界面
把对象映射成表
class Student(models.Model): name = char(20) age = int() student = Student() student.name = 'huyang' student.age = 10 student.save() -> insert into Student(name, age) values('huyang', 10); Student.objects.all() -> select * from Student;
https://docs.djangoproject.com/en/1.8/#the-view-layer
https://docs.djangoproject.com/en/1.8/ref/templates/language/
根据Django1.8的入门文档,以及本课件实现一个简单管理系统:内容包括:主机管理,机房管理,服务管理。