0
点赞
收藏
分享

微信扫一扫

Django框架

福福福福福福福福福 2022-04-14 阅读 236
pythondjango

【框架结构及作用】


【开展项目】

生成一个app模块

#PyCharm命令行
PS D:项目路径> python ./manage.py startapp 模块名称(比如app01)

在运行、编写app部分之前 要将app部分注册进配置文件中 确保app已注册

编写URL和试图函数对应关系

编写视图函数

也可以用render返回html文件格式

  • 启动项目:
# PyCharm命令行
PS 项目路径> python .\manage.py runserver

        或者用PyCharm的绿色启动箭头开启

        输入对应URL 得到返回的视图

  • templates模块:

        存放用于返回的HTML模板

  • 静态文件:

        在开发过程中 一般将图片、CSS、JS都处理成静态文件 必须存放在APP下的static文件夹下

         以上方法不推荐使用

    可以使用django的方法 这样以后在修改静态文件位置时 只需要修改配置文件中的STATIC_URL

  • 在html中使用传入变量:

        在views方法中以字典的格式传入变量

         在html文件中用{{key}}的形式来使用

  • 关于列表类型的变量使用:

        同上述一样传入参数

        可以使用{{ name.id }}的方式获取相应下标的值 也可以用循环遍历的方式

  • 关于字典类型的变量使用:

        可以使用{{ name.key }}的方式获取相应键的值 也可以使用循环方式 循环方式有:

{% for k,v in name.items %}        //获取键和值

{% for item in name.keys %}        //只获取键

{% for item in name.values %}      //只获取值

  • 请求与响应:

  •  Django安全机制 Forbidden错误:

        需要在form表单里面加入 {% csrf_token %}

        相当于Django提供的校验令牌 

  • 关闭项目服务:

        在PyCharm命令行下 按住Ctrl+C

        或者找到项目服务的进程id

        输入kill 对应id


【Django数据库操作 ORM】

Django内部提供了orm框架 方便我们对数据库中的表以及其中的数据进行操作

  • 安装第三方模块    
pip install mysqlclient
  • 手动创建数据库

orm框架只能对数据库中的表进行操作 而无法对数据库进行操作 所以就需要手动创建数据库

CREATE DATABASE `数据库名称` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


======== Django操作数据库中的表========

 在settings.py文件中进行配置和修改

  • 创建表

在models.py文件中写入相关的类:

from django.db import models

# Create your models here.

class UserInfo(models.Model):        # 规定类必须继承models
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()

"""
当Django读入这个类时 会自动将该类翻译为创建一个表的SQL语句:
create table app01_userinfo(
    id bigint auto_increment primary key,
    name varchar(32),
    password varchar(64),
    age int
)
"""

在类写入完毕后 在终端执行  (app必须提前注册 否则不会提交)

PS 项目路径>python manage.py makemigrations
PS 项目路径>python manage.py migrate

  • 操作表或数据

在表中新增字段时,由于已存在列中可能已有数据,所以新增列必须指定新增列对应的数据:

                1.手动输入一个值

                2.设置默认值

                        字段名称 = models.字段类型方法(default=默认值)

                3.允许为空

                        字段名称 = models.字段类型方法(null=True,blank=True)

新增数据:

        类名.objects.create(字段1=值,字段2=值, ... ...)

 删除数据:

        根据filter()筛选出来的数据删除:

        类名.objects.筛选方法名(参数).delete()

                比如        UserInfo.objects.filter(id=3).delete()

        删除全部数据:

        类名.objects.all().delete()

获取数据:

        类名.objects.筛选方法名(参数)

                比如        UserInfo.objects.all()        UserInfo.objects.filter(id=1)

        数据的返回类型为 data_list=[对象1,对象2, ... ...]

         若只想取一条数据 则可以:类名.objects.筛选方法名(参数).first()

                比如         UserInfo.objects.filter(name='aaa').first()

        数据的返回类型为一个封装好的对象 不再需要遍历

修改数据:

        类名.objects.筛选方法名(参数).update(字段名=值)

                比如        UserInfo.objects.filter(name='aaa').update(name='aaa01')

  • 删除表或字段

将相关的类或字段注释掉后 再次执行命令即可

PS 项目路径>python manage.py makemigrations
PS 项目路径>python manage.py migrate
举报

相关推荐

0 条评论