django自我学习之基本流程走通(一)

django基本文件作用

urls.py
网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。

views.py
处理用户发出的请求,从urls.py中对应过来, 通过渲染templates中的网页可以将显示内容,比如登陆后的用户名,用户请求的数据,输出到网页。

models.py
与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。

forms.py
表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,当然你也可以不使用。

views.py
中的函数渲染templates中的Html模板,得到动态内容的网页,当然可以用缓存来提高速度。

admin.py
后台,可以用很少量的代码就拥有一个强大的后台。

settings.py
Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。

一,配置数据库

我们这里以mysql数据库为例演示,首先我们要在__init__.py中进行包的导入:

#使用mysql数据库前,需要导入这个pymysql包
import pymysql
pymysql.install_as_MySQLdb()

其次在settings.py的文件中Database处进行数据变更,具体的变更内容为:
在这里插入图片描述
要注意的是如果将要使用的库还未创建,需要先到数据库当中对于库进行定义,然后填入自己数据库的账户密码,以及服务器IP等配置,这样就可以成功将django默认的数据库存储设置为我们熟悉的mysql。

二,创建应用

一个完整的项目,应该是分成很多的小应用,我们可以在终端环境下用命令创建应用,首先我们切入到django创建的文件的project(含settings.py的文件夹)当中,然后输入命令:

python manage.py() startapp myAPP(这里可以给自己的app起名字)

三,激活应用

在主包的settings.py文件中,将myapp加入到INSTALLED_APPS当中在这里插入图片描述

四,应用下定义模型(创建表)

在创建的应用下models.py中引入from django.db import models,然后创建类,在类中定义自己的表数据字段,这里我以班级表和学生表为例进行创建:

from django.db import models


# Create your models here.

class Grades(models.Model):
    gname = models.CharField(max_length=20)
    gdate = models.DateField()
    ggirlnum = models.IntegerField()
    gboynum = models.IntegerField()
    isDelete = models.BooleanField()


class Students(models.Model):
    sname = models.CharField(max_length=20)
    sgender = models.BooleanField(default=False)
    sage = models.IntegerField()
    scontend = models.CharField(max_length=20)
    isDelete = models.BooleanField(default=False)
    sgrade = models.ForeignKey("Grades", on_delete=models.CASCADE)   #定义外键的时候必须定义级联删除

每一个类模型都要继承models.Models,且在定义表数据的时候不需要定义主键,这是由创建时自动生成。这里我们不需要用SQL语句来定义和约束每一字段,我们可以利用model中的方法进行约束。这一阶段所定义的表并不会在数据库中生成。

五,生成表

  • 生成迁移文件
    我们还是可以在终端环境中来生成迁移文件,首先还是来到project文件夹,然后输入命令(此时在migrations目录下生成迁移文件,此时的数据库依旧还未有表,我们还需要执行迁移文件。):
python manage.py makemigrations
  • 执行迁移文件
    在迁移文件执行完之后,我们可以用命令来执行这个迁移文件(相当于执行了SQL创表语句):
python manage.py migrate

六,测试数据操作

(以下过程皆为在python的终端环境下进行:)

  1. 在project文件夹位置的终端环境里输入命令:
python manage.py shell

并引入包:

from myAPP.models import Grades,Students
from django.utils import timezone
from datetime import *
  1. 查询所有数据
类名.objects.all()
  1. 创建数据
创建类:
gra = Grades()
gra.gname = "python01"
...
...
...
gra.gboynum = 70
gra.save()    #当执行save()方法时才会将数据存入数据库当中
  1. 查看某个对象
类名.object.get(pk=2)
  1. 修改数据
模型对象.属性 = 新值
#修改完之后要使用 save()方法将其写入数据库
  1. 删除数据
模型对象.delete()
#物理删除

猜你喜欢

转载自blog.csdn.net/baldicoot_/article/details/107140659