django基础(一)
一、创建django程序
1、终端:django-admin startproject sitename
2、IDE创建Django程序时,本质上都是自动执行上述命令
常用命令:
python manage.py runserver
python manage.py startapp appname
python manage.py syncdb
python manage.py makemigrations
python manage.py migrate
python manage.py shell
二、Django程序目录

三、配置文件
1.数据库
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', 4 'NAME':'dbname', 5 'USER': 'root', 6 'PASSWORD': 'xxx', 7 'HOST': '', 8 'PORT': '', 9 } 10 }
2.模版
1 TEMPLATE_DIRS = ( 2 os.path.join(BASE_DIR,'templates'), 3 )
3.静态文件
1 STATICFILES_DIRS = ( 2 os.path.join(BASE_DIR,'static'), 3 )
四、路由系统
django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。
1.每个路由规则对应一个view中的函数
1 url(r'^index/(\d*)', views.index), 2 url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage), 3 url(r'^manage/(?P<name>\w*)', views.manage,{'id':333}),
2.根据app对路由规则进行一次分类
1 url(r'^web/',include('web.urls')),
五、模型
django使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM)。
django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表。
1、创建Model,之后可以根据Model来创建数据库表
1 from django.db import models 2 3 class userinfo(models.Model): 4 name = models.CharField(max_length=30) 5 email = models.EmailField() 6 memo = models.TextField()
更多字段:
1 models.AutoField 自增列 = int(11) 2 如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。 3 models.CharField 字符串字段 4 必须 max_length 参数 5 models.BooleanField 布尔类型=tinyint(1) 6 不能为空,Blank=True 7 models.ComaSeparatedIntegerField 用逗号分割的数字=varchar 8 继承CharField,所以必须 max_lenght 参数 9 models.DateField 日期类型 date 10 对于参数,auto_now = True 则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。 11 models.DateTimeField 日期类型 datetime 12 同DateField的参数 13 models.Decimal 十进制小数类型 = decimal 14 必须指定整数位max_digits和小数位decimal_places 15 models.EmailField 字符串类型(正则表达式邮箱) =varchar 16 对字符串进行正则表达式 17 models.FloatField 浮点类型 = double 18 models.IntegerField 整形 19 models.BigIntegerField 长整形 20 integer_field_ranges = { 21 'SmallIntegerField': (-32768, 32767), 22 'IntegerField': (-2147483648, 2147483647), 23 'BigIntegerField': (-9223372036854775808, 9223372036854775807), 24 'PositiveSmallIntegerField': (0, 32767), 25 'PositiveIntegerField': (0, 2147483647), 26 } 27 models.IPAddressField 字符串类型(ip4正则表达式) 28 models.GenericIPAddressField 字符串类型(ip4和ip6是可选的) 29 参数protocol可以是:both、ipv4、ipv6 30 验证时,会根据设置报错 31 models.NullBooleanField 允许为空的布尔类型 32 models.PositiveIntegerFiel 正Integer 33 models.PositiveSmallIntegerField 正smallInteger 34 models.SlugField 减号、下划线、字母、数字 35 models.SmallIntegerField 数字 36 数据库中的字段有:tinyint、smallint、int、bigint 37 models.TextField 字符串=longtext 38 models.TimeField 时间 HH:MM[:ss[.uuuuuu]] 39 models.URLField 字符串,地址正则表达式 40 models.BinaryField 二进制<br>23、models.ImageField 图片<br>24、models.FilePathField 文件
更多字段的参数:
1 null=True 2 数据库中字段是否可以为空 3 blank=True 4 django的 Admin 中添加数据时是否可允许空值 5 primary_key = False 6 主键,对AutoField设置主键后,就会代替原来的自增 id 列 7 auto_now 和 auto_now_add 8 auto_now 自动创建---无论添加或修改,都是当前操作的时间 9 auto_now_add 自动创建---永远是创建时的时间 10 choices 11 GENDER_CHOICE = ( 12 (u'M', u'Male'), 13 (u'F', u'Female'), 14 ) 15 gender = models.CharField(max_length=2,choices = GENDER_CHOICE) 16 max_length 17 default 默认值 18 verbose_name Admin中字段的显示名称 19 name|db_column 数据库中的字段名称 20 unique=True 不允许重复 21 db_index = True 数据库索引 22 editable=True 在Admin里是否可编辑 23 error_messages=None 错误提示 24 auto_created=False 自动创建 25 help_text 在Admin中提示帮助信息 26 validators=[] 27 upload-to
数据库中表与表之间的关系:
1.一对多,models.ForeignKey(ColorDic)
2.一对一,models.OneToOneField(OneModel)
3.多对多,authors = models.ManyToManyField(Author)
2、数据库操作
-
- 增加:创建实例,并调用save
- 更新:先获取实例,再sava 或update(指定列)
- 删除:先filter再delete
- 获取:单个:get;所有:all
- 过滤
- 排序:order_by
- 返回第n-m条
- 指定映射:values
- 数量:count()
六、模版
1、模版的执行
模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户。
2、模版语言
模板中也有自己的语言,该语言可以实现数据展示

浙公网安备 33010602011771号