python基础7-Django进阶篇

1.django对数据库进行相关操作,使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM)。

 

2.配置:

a.数据库要自己登陆数据库进行创建

b.在app01下的__init__.py中配置

from django.db import models

c.需要在project同名文件夹下的settings.py中INSTALLED_APPS处进行配置

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01',		#需要添加该行,
]

d.**********注意***********

django默认使用MySQLdb模块连接mysql,主动修改为pymysql,在project同名文件夹下的__init__.py文件中添加如下代码即可

import pymysql
pymysql.install_as_MySQLdb()

e.在app01下的models.py中创建类,(即通过类创建表结构)

class UserInfo(models.Model):
	#id列,默认会多一列,主键且自增	
	#用户名列,字符串类型,指定长度
	username = models.CharField(max_length=32)
	passw0rd = models.CharField(max_length=64)

  表名自动为app01_userinfo

f..切换到project目录下,执行:

python manage.py makemigrations
python manage.py migrate

  

  

  

 

3.字段的参数

null                db字段是否可以为空
db_column           db字段的列名
db_tablespace
default             db字段的默认值
primary_key         db字段是否为主键
db_index            db字段是否可以建立索引
unique              db字段是否可以建立唯一索引
unique_for_date     db字段【日期】部分是否可以建立唯一索引
unique_for_month    db字段【月】部分是否可以建立唯一索引
unique_for_year     db字段【年】部分是否可以建立唯一索引

auto_now            创建时,自动生成时间
auto_now_add        更新时,自动更新为当前时间

obj = UserGroup.objects.filter(id=1).update(caption="CEO")
obj = UserGroup.objects.filter(id=1).first()
obj.caption = "CEO"
obj.save()

verbose_name        Admin中显示的字段为中文
blank               Admin中是否允许用户输入为空
editable            Admin中是否可以编辑
help_text           Admin中该字段的提示信息
choices             Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作
                    如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1)

error_messages      自定义错误信息(字典类型),从而定制想要显示的错误信息;
                    字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date
                    如:{'null': "不能为空.", 'invalid': '格式错误'}

validators          自定义错误验证(列表类型),从而定制想要的验证规则
                    from django.core.validators import RegexValidator
                    from django.core.validators import EmailValidator,URLValidator,DecimalValidator,\
                    MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator
                    如:
                        test = models.CharField(
                            max_length=32,
                            error_messages={
                                'c1': '优先错信息1',
                                'c2': '优先错信息2',
                                'c3': '优先错信息3',
                            },
                            validators=[
                                RegexValidator(regex='root_\d+', message='错误了', code='c1'),
                                RegexValidator(regex='root_112233\d+', message='又错误了', code='c2'),
                                EmailValidator(message='又错误了', code='c3'), ]
                        )
View Code

 

 

4.

 

5.

 

6.

 

7.

 

8.

 

9.

 

10.

 

11.

 

12.

 

13.

 

14.

 

15.

 

16.

 

17.

 

18.

 

19.

 

20.

 

posted @ 2018-02-22 09:30  larlly  阅读(129)  评论(0)    收藏  举报