Django基本配置

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 会根据字段的属性名自动创建自述名--就是将属性名称中的空格替换成下划线。
原文地址:https://www.cnblogs.com/maxaimee/p/6582832.html