pycharm中直接创建django项目

输入创建项目名(如first_django)

在此输入应用名(如g_tu)

此为项目总目录

将first_django中settings.py中第58行修改为以下代码
'DIRS': [os.path.join(BASE_DIR , 'templates')]
在此代码中搜索DATABASES将代码修改为以下

连接MySQL数据库

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'stu', #创建的表名
'HOST':'127.0.0.1',
'PORT':3306,
'USER':'root', #用户名
'PASSWORD':'123456' #密码
}
}

在first_django中urls中输入以下代码

path('',views.index),   #主页为views中的index函数
在models.py中创建两个表
 
class Grade(models.Model):
g_name = models.CharField(max_length=200)
class Student(models.Model):
s_name = models.CharField(max_length=200)
age = models.CharField(max_length=200)
sex = models.CharField(max_length=200)
emali = models.CharField(max_length=200)
password = models.CharField(max_length=200)
g = models.ForeignKey(Grade, on_delete=models.CASCADE)
之后在打开pycharm中打开cmd输入
python manage.py makemigrations   #创建sql语句
python manage.py sqlmigrate 0001 #查看sql语句
python manage.py migrate #执行sql语句
在g_stu中views中引入
from g_stu.models import Grade,Student
输入函数index
def index(request):
g = Grade(g_name="一班") #增加数据
g.save() #提交
return render(request,"index.html") #返回网页index
在templates中创建index.html文件
 
在first_django中urls中输入以下代码
path('show/',views.show),  #跳转到为views中的show函数
path('<int:id>',views.student,name="student")
#传值 类型为int 为view中student函数
在g_stu中views中输入函数show展示数据
def show(request):
g_all = Grade.objects.all() #查询Grade表所有数据
return render(request, "show.html",{
"grade":g_all #注意传回值为字典
}) #返回show.html页面 传回查询的所有数据 def student(request,id): #接受id
gr = Grade.objects.filter(id=id).first() #条件查询 查找符合条件的第一条数据
s = Student(s_name="张三",age="20",sex="男",emali="111@qq.com",password="111",g=gr) #插入数据外键等于查询数据的主键
s.save()
return render(request,"stu.html",{"s":s}) #返回stu.html页面 传回插入的数据s
在templates中创建show.html文件
{% for i in grade %}   #循环传回字典的值
<a href="{% url 'student' i.id %}">{{ i.g_name }}</a> #展示每条数据
#{% url 'student' i.id %} 此句为给student视图传回此条数据的id值
{% endfor %} #结束循环
在templates中创建stu.html文件
{{ s.s_name }}  #展示数据
{{ s.age }}
{{ s.sex }}
{{ s.emali }}
{{ s.password }}
执行代码
python manage.py runserver
点击执行代码后的链接
在后输入/show 即为展示班级页面
点击班级即为添加学生页面

django(django学习) 两张表创建 插入数据的更多相关文章

  1. Springboot+Mybaits之两张表同时插入数据

    项目需求是,一张表添加数据的同时,另外一张表也需要添加数据,话不多说,直接上代码. 1.Controller,我把两个DTO直接放到一个@RequestBody中.其中throws是后台获取当前时间抛 ...

  2. SQLServer两张表筛选相同数据和不同数据

    概述 项目中经常会对两张数据库表的数据进行比较,选出相同的数据或者不同的数据.在SQL SERVER 2000中只能用Exists来判断,到了SQL SERVER 2005以后可以采用EXCEPT和I ...

  3. django同时查询两张表的数据,合并检索对象返回

    原始需求: 1.一篇文章内容分N个版块,每篇文章的版块数量不同. 2.有个文章搜索功能,需要同时搜索标题和内容. 实现思路: 1.由于每篇文章的内容版块数量不同,因此将每个文章的标题和内容分开存入2张 ...

  4. mysql左连接右连接(查询两张表不同的数据)

    有两张表:一张A表he一张B表 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 :right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: ...

  5. SQL两张表筛选相同数据和不同数据

    原文链接:http://www.cnblogs.com/onesmail/p/6148979.html 方法一: select distinct A.ID from A where A.ID not ...

  6. SqlServer SqlBulkCopy批量插入 -- 多张表同时插入(事务)

    这段时间在解决一个多个表需要同时插入大量数据的问题,于是在网上找了下,查到说用SqlBulkCopy效率很高,实验后确实很快,10万条数据只要4秒钟,用ef要用40秒.但是我的还需两张表同时插入,且需 ...

  7. MySQL实验1: 新建一个名为 library 的数据库,包含 book、reader 两张表,根据自己的理解安排表的内容并插入数据。

    数据表(table)简称表,它是数据库最重要的组成部分之一.数据库只是一个框架,表才是实质内容. 实验: 新建一个名为 library的数据库,包含 book.reader两张表,根据自己的理解安排表 ...

  8. 【第十五篇】easyui datagrid的列编辑,同时插入两张表的数据进去

    看图说话. 需求:插入两张表,上面的表单是第一张表的内容,下面的两个表格是第二张详情表的内容,跟第一张表的id关联 第二张表有一个列是需要用户手动填写添加的. 国际惯例,上代码 <div id= ...

  9. 初学者使用MySQL_Workbench 6.0CE创建数据库和表,以及在表中插入数据。

    标签: mysqlworkbench数据库 2013-10-09 20:17 19225人阅读 评论(14) 收藏 举报  分类: mysql(1)  版权声明:本文为博主原创文章,未经博主允许不得转 ...

随机推荐

  1. 漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃monkey日志

    漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃日志 1.APP崩溃率标准 开发或测试app的同学,对于app崩溃肯定非常熟悉,频繁的线上崩溃属 ...

  2. python100实例

    实例001:数字组合 题目 有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析 遍历全部可能,把有重复的剃掉. total=0 for i in range(1 ...

  3. c# 生成xml的结构 专业代码

    详细看代码把 public ArrayList kepingyi(string names="") { ArrayList list = new ArrayList(); stri ...

  4. python 第二天 之循环与判断

    人生苦短我用python------这句话说的一点都没有错,python功能真的是太强大了,最主要的节约时间,节约时间对于一个程序员意味着什么?意味着早睡,意味着更多的时间可以干更多的活.少熬了了多少 ...

  5. 不小心清空了Ceph的OSD的分区表如何恢复

    前言 如果你是新手,应该出现过敲盘符的时候,敲错的情况,有些操作可能没什么问题,查询类的操作都没问题,但是写入的情况,就可能比较麻烦了,当然老手也可能有误操作,本篇将讲述在误操作把分区表给弄丢了的情况 ...

  6. 检查linux下服务器的带宽

    设想:公司 A 有一个名为 bsdocfs 的存储服务器,并通过名为 beckham 的客户端节点装载 NFS.公司 A 确定他们需要从 bsdocfs得到更多的带宽,因为有大量的节点需要访问 bsd ...

  7. Linux ---搭建SFTP服务器

    在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 ssh -V 使用ssh -V 命令来查看op ...

  8. 07 . 前端工程化(ES6模块化和webpack打包)

    模块化规范 传统开发模式主要问题 /* 1. 命名冲突 2. 文件依赖 */ 通过模块化解决上述问题 /* 模块化就是把单独的一个功能封装在一个模块(文件)中,模块之间相互隔离, 但是可以通过特定的接 ...

  9. Rest语法,传入多个参数

    Rest语法,传入多个参数 js调用函数时可以传入任意数量的参数,而不报错.如果传入的参数没有用到,那么传入多余的参数没有任何用处,那不是瞎子点灯白费蜡嘛.为了充分利用传入的每一个参数,我们可以采用R ...

  10. [LeetCode题解]143. 重排链表 | 快慢指针 + 反转

    解题思路 找到右边链表,再反转右边链表,然后按左.右逐一合并 代码 /** * Definition for singly-linked list. * public class ListNode { ...