Django 基本配置
-
pip install django 安装django
-
python manage.py startproject mysite
-
修改setting.py文件
-
修改数据库的配置文件,系统默认的是sqllite3 不用配置,直接可以用
-
如果要换成Mysql 需要以下修改.
- 安装mysql-python如果没有安装,会报错.
No module named MySQLdb
'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库的名字', 'USER':'用户的名字', 'PASSWORD':'用户的密码', 'HOST':'IP地址',
-
-
修改静态文件的地址
STATIC_URL = '/static/' 在下面添加 STATICFILES_DIRS=( os.path.join(BASE_DIR,'static'), )
-
引用静态文件的方法
{% static images/logo.png%}
-
并且记得在html文件加上 {% load staticfiles %},不过不能放在{% extends base.html %}前面,不然也会报错.
-
创建app的方法: python manage.py startapp appname
-
创建表格的方法.在Model中写清楚
例子
class BlogArticles(models.Model): #继承model
title=models.CharField(max_length=300)# CharField需要写清楚,max_length,最好越清楚越好,对数据库有优化作用
author=models.ForeignKey(User,related_name="blog_posts") # 外检关系
body=models.TextField()
publish=models.DateTimeField(default=timezone.now)
class Meta:
ordering=("-publish",)
def __str__(self):
return self.title
常用字段
- EmailField
- class EmailField([max_length=75, **options]),它是带有 email 合法性检测的A CharField 。
- FileField
- class FileField(upload_to=None[, max_length=100, **options])
- ImageField
- class ImageField(upload_to=None[, height_field=None, width_field=None, max_length=100, **options])
- 和 FileField 一样,只是会验证上传对象是不是一个合法的图象文件。它有两个可选参数:
- DateField
- class DateField([auto_now=False, auto_now_add=False, **options])
- 该字段利用 Python 的 datetime.date 实例来表示日期。下面是它额外的可选参数:
- DateField.auto_now
- 每一次保存对象时,Django 都会自动将该字段的值设置为当前时间。一般用来表示 "最后修改" 时间。要注意使用的是当前日期,而并非默认值,所以你不能通过重写默认值的办法来改变保存时间。
- DateField.auto_now_add
- 在第一次创建对象时,Django 自动将该字段的值设置为当前时间,一般用来表示对象创建时间。它使用的同样是当前日期,而非默认值。
- BooleanField
- class BooleanField(**options)
- 一个布尔值(true/false)字段。Django 的管理后台用checkbox来表现该字段类型。
- SlugField
- class SlugField([max_length=50, **options])
- Slug 是一个新闻术语,是指某个事件的短标签。它只能由字母,数字,下划线或连字符组成。通赏情况下,它被用做网址的一部分。
- 和 CharField 类似,你可以指定 max_length (要注意数据库兼容性和本节提到的 max_length )。
- 如果没有指定 max_length ,Django 会默认字段长度为50。该字段会自动设置 Field.db_index to True。基于其他字段的值来自动填充 Slug 字段是很有用的。你可以在 Django 的管理后台中使用 prepopulated_fields 来做到这一点。
常用option
blank
如果为 True,字段允许不填。默认为 False 。
choices
它是一个可迭代的二元组(比如,列表或是元组),用来给字段提供选择项。
实现Django后台管理的下拉框选择。如果设置了 choices ,Django 的管理后台就会显示选择框,而不是标准的文本框,而且这个选择框的选项就是 choices 中的元组。‘choices' must be an iterable containing (actual value, human readable name) tuples.每个元组中的第一个元素,是存储在数据库中的值;第二个元素是该选项更易理解的描述。
choices 列表可以定义为 model 类的一部分,也可以定义在 model 类之外:
class Foo(models.Model):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
default
该字段的默认值。它可以是一个值,也可以是一个可调用的对象(这里称之为对象C)。若是后者,那么每次创建一个新对象时,对象C都将被调用。
primary_key
如果为 True,那么该字段就是 model 的主键。
如果你没有指定任何一个字段的 primary_key=True ,Django 就会自动添加一个 IntegerField 做为主键字段。所以除非你想重写默认的主键行为,否则没必要在任何字段上设置primary_key=True 。详见 自增主键字段 (Automatic primary key fields) 。
primary_key=True 意味着 null=False 和 unique=True 。一个对象只能有一个主键。
unique
如果为 True,该字段值就必须是全表唯一的。
它同时作用于数据库层级以及 Django 的管理后台和表单层级。如果你保存 model 时,某个 unique 字段的值是重复的,那么 save() 方法就会抛出 django.db.IntegrityError 异常。
这个选项在所有的字段上都是可用的,除了 ManyToManyField 和 FileField 以外。
verbose_name
该字段易于理解的名称。如果没有提供自述名,Django 会根据字段的属性名自动创建自述名--就是将属性名称中的空格替换成下划线。