Python之后端Django(二)

news/2024/12/23 0:32:43/

Day/2

模型:

mysql数据库服务端软件安装:sudo apt-get install mysql-server
mysql数据库命令行客户端安转:sudo apt-get install mysql-client

数据库操作基本流程:

  1. 创建数据库 (create database 数据名称 charset=utf8;)

  2. 使用数据库 (use 数据库名称)

  3. 创建表

    ORM框架:“o”——》类对象 “m”——》映射 “r”——》关系

    数据库的表——》类

    数据库中的行——》对象

    数据库中的字段——》属性

    “重点内容”:

    1. 定义模型时,必须继承Model类

      django只需在model内编写自动创建

      class BookInfo(models.Model):"""1. 主键会自动生成"""name = models.CharField(max_length=10)  # 最大长度class PeopleInfo(models.Model):# 人名name = models.CharField(max_length=10)# 性别gender = models.BooleanField()# 外键book = models.ForeignKey(BookInfo)
      
    2. 定义属性时,语法格式:属性=models.字段类型(选项)

      django字段类型:https://www.cnblogs.com/jingzaixin/p/8670094.html

    3. 需要执行两句指令:

      在pycharm的命令行中输入指令

      一、生成迁移文件

      python manage.py makemigrations
      

      二、同步到数据库中

      python manage.py migrate
      
  4. 登录站点http://127.0.0.1:8000/admin

    第一次登录后是无账号无密码的,需要手动创建,密码长度要8位,切包含数字和字母

    指令: python manage.py createsuperuser

    注册模型类:admin.site.register(模型类) 在admin.py文件中

    from django.contrib import admin
    from users.models import BookInfo,PeopleInfo
    # Register your models here.# 注册书籍模型类
    admin.site.register(BookInfo)
    # 注册人物模型类
    admin.site.register(PeopleInfo)
    

    遇到一个问题,在后台新增数据时,生成的效果都是BookInfo object,无法区分!

    方法:指定打印出str()函数

    def __str__(self):# 重写str函数,动态显示示例属性的值return self.name

    总结:

    1. 设置后台中文显示,注册管理员账户

    2. 注册模型表

    3. 重写str函数

视图: views.py文件

http://127.0.0.1:8000/users/index运行

视图的概念:就是一个写在views.py中的python函数

特点:

  1. 视图函数必须要有一个参数,接收request请求对象,且写在第一个

  2. 视图函数必须要有响应对象

注意:先从demo查到urls.py,在从urls.py查到users子应用,还能找得到,就找子应用里的urls.py查到views.py

demo中的urls.py

from django.conf.urls import url, include
from django.contrib import admin# 路由
urlpatterns = [url(r'^admin/', admin.site.urls),# include函数url(r'^users/', include('users.urls')),
]

子应用users里的urls.py

from django.conf.urls import url
from users.views import indexurlpatterns = [url(r'^index/', index),
]

子应用users中的views.py

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.# 定义一个视图函数
def index(request):return HttpResponse('这是第一次写视图函数')

路由URL:

  1. 查找规则从上至下,会有屏蔽效应,解决的方法:正则内最后加个$符号即可,但是一般是在子路由里加,工程总路由不加。

    urlpatterns = [url(r'say$', views.say),url(r'sayhello$', views.sayhello),
    ]
    
  2. urlpatterns 是固定写法,不能更改

模板:

作用:将前端的代码抽离出来,定义在模板中,降低耦合度

“模板的使用步骤”:

  1. 创建模板,在子应用的同级目录下,文件夹的名字固定写法:templates

  2. 设置模板的路径

  3. 模板接收视图传入的数据

  4. 模板处理数据

在settings配置文件中‘template’的DIRS中添加os.path.join(BASE.DIR, ‘templates’)表示固定到指定文件下寻找。


http://www.ppmy.cn/news/77737.html

相关文章

Spring 整合 Mybatis -- Spring入门保姆级教程(四)

文章目录 前言五、Spring 整合 Mybatis1.Mybatis一般开发流程2.spring整合mybatis思路分析3.Spring整合Mybatis环境准备(注解开发)4.Spring整合Mybatis5.小结 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客&#xf…

Grow模型

Grow模型 该模型是约翰.惠特默,在1992年其著作《高绩效教练》一书中提出的,核心是围绕设定目标和寻找解决方案的有效工具。 模型介绍 GROW模型给到应用者一个可以高效的设立目标并制定计划,最终解决问题的思路框架。 GROW 由四个步骤构成&am…

gym不渲染画面的解决方案(gym版本号0.26.2)

确认gym版本号 我安装了新版gym,版本号是0.26.2,不渲染画面的原因是,新版gym需要在初始化env时新增一个实参render_mode‘human’,并且不需要主动调用render方法,官方文档入门教程如下 import gym import numpy as n…

R语言结构方程模型(SEM)在生态学领域中的实践应用

结构方程模型(Sructural Equation Model)是一种建立、估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归、因子分析、协方差分析等方法,利用图形化模型方式清晰展示研究系统中变量间的因果网络关系,…

什么是IP地址及IP地址分类详解

概念 IP地址,英文名为IP Address,是internet protocol address的缩写,译为互联网协议地址,又译为网际协议地址。它是IP协议(internet protocol )提供的一种统一的地址格式,分配给使用IP协议的设…

Ubuntu/Debian/CentOS搭建Socks5代理一键脚本

说明 Socks5属于明文代理,不要用于科学上网,否则会被阻断端口,可用于正常的跳板使用; 比如SSH转发加速国外VPS的连接速度,特别是一些延迟高或者丢包高的VPS; 使用Socks5转发后SSH就可以快速稳定的连接了&a…

C语言中这么骚的退出程序方式你知道几个?

前言 在本篇文章当中主要给大家介绍C语言当中一些不常用的特性,比如在main函数之前和之后设置我们想要执行的函数,以及各种花式退出程序的方式。 1、main函数是最先执行和最后执行的函数吗? 1)C语言构造和析构函数 通常我们在…

QT学习笔记-QT5.15.2使用qtopcua5.15.2实现与PLC通讯(上)

QT学习笔记-QT5.15.2使用qtopcua5.15.2实现与PLC通讯(上) 环境说明背景思路perl依赖安装qtopcua插件编译解决编译报错问题解决安装mingw32-make install报错问题 环境说明 操作系统:Windows10 专业版 64位 开发工具:Qt 5.15.2 OP…