django_development

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

  DjangoDevelopmentLeon DongLiming_Do(at)smics.comDraft  Django1.0beta2●简介●安装●开始开发●定义Model●定义Form●开发Views●编写Template●新的期待  1.简介●Django是一个强大柔韧的Web系统开发框架●使用编程语言Python开发●全面与整合的各项功能●快速并简化的开发流程●帮助你快速开发项目和应用●语言好,思想好,设计好,实现好,测试好  2.安装●下载并安装Python()●下载并安装Django()●安装命令:python setup.py install  3.开始开发●3.1.创建项目●使用命令python django­admin.py startproject myproject●获得帮助python django­admin.py startproject –help●项目目录结构­ myproject|­ __init__.py  #表明这个目录是一个Python package|­ settings.py   # Django项目的设置和配置文件|­ urls.py         # Django项目的URL声名和配置文件|­ manage.py  #与Django项目交互的命令行工具  3.2.运行开发服务器●使用命令python manage.py runserver●获得帮助python manage.py runserver ­­help●指定机器名称和端口python manage.py runserver servername:port●访问地址可以看到一个默认的欢迎页面  3.3.创建应用●使用命令python manage.py startapp myapp●获得帮助python manage.py startapp –help●应用目录结构­ myproject|­ myapp    |­ __init__.py # 表明目录是一个Python package    |­ models.py   # 模型定义文件,根据模型定义生成数据库结构  3.4.设置数据库●编辑settings.py, 指定数据库引擎、数据库名称等配置项目●配置开发数据库DATABASE_ENGINE = 'sqlite3'DATABASE_NAME = 'myproject.db'●也可以设置为'postgresql_psycopg2', 'postgresql', 'mysql', 'ado_mssql'  3.5.激活应用●编辑settings.py,添加应用的package,将使服务器启动时自动加载应用INSTALLED_APPS = (        'django.contrib.auth',        'django.contrib.contenttypes',        'django.contrib.sessions',        'django.contrib.sites',        'myproject.myapp',)  3.6.配置URL映射●每当Django收到Request,它将根据URL映射的模式(URL pattern)匹配到视图(views.py)中的回调函数.●Django从上到下逐个进行模式匹配,当遇到第一个匹配的模式后停止,调用相应的视图方法处理Request.●  3.6.配置URL映射●编辑项目目录下的urls.py●增加myapp的URL映射urlpatterns = patterns('',        # My App:        (r'^myapp/', include('myproject.myapp.urls')),)  3.6.配置URL映射●在myapp目录下建立urls.py●Django使用正则表达式匹配URL, 配置应用的URL映射内容如下:from django.conf.urls.defaults import *    urlpatterns = patterns('',        (r'^entry/$', 'myapp.views.entry_list'),        (r'^entry/(?Pobject_id\d+)/$', 'myapp.views.entry_detail'),)  3.6.配置URL映射●在模式中可以通过(?Pnamepattern)为组命名,上例中的object_id将作为第二个参数,传递到函数entry_detail()中.●第一个参数为默认的request,因此myproject/myapp/views.py中的函数声明将是:def entry_detail(request, object_id):        # ... write source code to handle request here        pass  3.6.配置URL映射●New可以使用url()函数代替tuple处理URL映射,并且可以为URL pattern命名.urlpatterns = patterns('',        # url(regex, view, kwargs=None, name=None, prefix='')        # (r'^entry/$', 'myapp.views.entry_list'),        url(r'^entry/$', 'myapp.views.entry_list', name='index­view'),        (r'^entry/(?Pobject_id\d+)/$', 'myapp.views.entry_detail'), )  3.7.使用AdminSite●编辑settings.py激活Admin SiteINSTALLED_APPS = (        'django.contrib.auth',        'django.contrib.contenttypes',        'django.contrib.sessions',        'django.contrib.sites',        'django.contrib.admin',        'myproject.myapp',    )  3.7.使用AdminSite●编辑项目根目录下的urls.py,去掉admin前的注释符号from django.conf.urls.defaults import *    # Uncomment the next two lines to enable the admin:    from django.contrib import admin    admin.autodiscover()    urlpatterns = patterns('',        # My App:        (r'^myapp/', include('myproject.myapp.urls')),        # Uncomment the next line for to enable the admin:        (r'^admin/(.*)', admin.site.root),    )  3.7.使用AdminSite●使用命令python manage.py syncdb●将自动创建Admin Site所需要的数据表,并可以创建管理员帐号●再次运行开发服务器●访问Admin Site  ●可以创建User和Group并设置权限  4.定义Model●4.1.快速举例●Model是关系型数据在应用程序中的映射.通常数据库中的表和Model是相互对应的.表中的栏位表现为Model中的属性●对于不需要存储在数据库表中的信息, 可以通过定义一个叫作Meta的Model的内类(Inner Class)来实现●Django提供了通过Model自动生成数据库表和字段, 并且访问操作数据的功能  4.1.快速举例●编辑myapp目录下的models.py定义Modelfrom django.db import modelsclass Entry(models.Model):        headline = models.CharField(max_length=255)        body_text = models.TextField()        pub_date = models.DateTimeField()  4.2.定义Fields&Relations●Django有两方面对于字段命名的限制●一个是不能使用python的保留字(如: pass)●另一个是字段的名字中不能存在两个或以上下划线(即: __ ),Django使用双下划线作为默认的查询符号●使用命令python manage.py shellfrom django.db import modelsdir(models)● New可使用db_tablespace选项代替settings中的DEFAULT_INDEX_TABLESPACE, 如果数据库不支持则被忽略  4.2.定义Fields&Relations●列举fields:●AutoField●BooleanField●CharField●CommaSeparatedIntegerField●DateField●DateTimeField●DecimalFieldNew固定精度十进制小数可使用参数max_digits和decimal_places  4.2.定义Fields&Relations●EmailField●FileFieldNew使用max_length改变默认的varchar(100)●FilePathFieldNew使用max_length改变默认的varchar(100)●FloatField Change表现为Python中的float●IPAddressField●ImageFieldNew使用max_length改变默认的varchar(100)●IntegerField●NullBooleanField●PhoneNumberField  4.2.定义Fields&Relations●PositiveIntegerField●PositiveSmallIntegerField●SlugField●SmallIntegerField●TextField●TimeField●URLField●USStateField●XMLField  4.2.定义Fields&Relations●列举relationships:●OneToOneField       One­to­one relationships●ForeignKey              Many­to­one relationships●ManyToManyField  Many­to­many relationships●New在另外一个app中引用当前Model中的类, 可以通过applabel.classname的方式, 如: auther = models.ForeignKey('auth.User')   4.2.定义Fields&Relations●New使用额外的类建立ManyToMany关联class Person(models.Model):        name = models.CharField(max_length=128)        def __unic

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功