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 文件
more fields

    更多字段的参数:

 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
more parameters

    数据库中表与表之间的关系:

      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、模版语言

    模板中也有自己的语言,该语言可以实现数据展示

posted @ 2017-03-13 15:15  黎灬婼  阅读(190)  评论(0)    收藏  举报