沧州网站建设推广,w3school网页制作,河南省级住房城乡建设主管部门网站,网站代备案python-web应用程序-Django数据库-数据库表设计
在models中创建一个类会自动对数据库进行管理#xff0c;那么如何用类的声明来实现数据库表的设计呢#xff1f;
from django.db import models# Create your models here.
class Department(models.Model):title models.Ch…python-web应用程序-Django数据库-数据库表设计
在models中创建一个类会自动对数据库进行管理那么如何用类的声明来实现数据库表的设计呢
from django.db import models# Create your models here.
class Department(models.Model):title models.CharField(verbose_name部门名称,max_length20)class UserInfo(models.Model):name models.CharField(verbose_name姓名,max_length10)password models.CharField(verbose_name密码,max_length20)age models.IntegerField(verbose_name年龄)account models.DecimalField(verbose_name账户余额,max_digits10,decimal_places2,default0)crate_time models.DateTimeField(verbose_name入职时间)#无约束depart_id models.BigIntegerField(verbose_name部门id)1.有约束- to ,与那张表关联- to_field ,表中的那一字段关联2.Django自动- 写的dapart- 生成数据列 depart_id3.部门表被删除时- 级联删除dapart models.ForeignKey(toDepartment,to_fieldid,on_deletemodels.CASCADE)- 置空dapart models.ForeignKey(toDepartment,to_fieldid,nullTrue,blankTrue,on_deletemodels.SET_NULL)以上均是在数据库中的约束dapart models.ForeignKey(toDepartment,to_fieldid,nullTrue,blankTrue,on_deletemodels.SET_NULL)#在django中做出约束gender_choices ((1,男),(2,女))gender models.SmallIntegerField(verbose_name性别,choicesgender_choices)Django连接数据库
1.创建数据库
create database pymysql DEFAULT CHARSET utf8 COLLATE utf8_general_ci;2.在Django中配置数据库
DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: pymysql, #数据库名称USER:root,PASSWORD:123456,HOST:127.0.0.1,PORT:3306}
}3.根据models中的类自动生成表结构命令
python manage.py makemigrations
python manage.py migrate也可点击-tools - run manage.py TASK
makemigrations
migrate部门管理 用最原始的方法做 后续使用Django中提供的Form和ModelForm组件更方便 1.参数传递
前端
href/depart/{{ obj.id }}/edit/urls.py中
path(depart/int:nid/edit/,views.depart_edit)
#int:nid正则表达式相当于占位符该位置传递的是nid 的参数。view.py中
def depart_edit(request,nid):
部门
#根据nid获取他的数据[obj,]
row_object models.Department.objects.filter(idnid).first()return render(request,depart_edit.htnl{row_object: row_object})
2.模版的继承
对于前端高度重复的部分可以使用模版继承将不变的继承下来变化的重写即可 创建一个前端模版layout.html 在需要变化的地方加上 {% block content %}
{% endblock %}使用模版创建一个test.html {% extends layout.html %}{% block content %}{% endblock %}layout.html: ! DOCTYPE htmlhtml langen head
meta charsetUTF-8titleTitle/title/ head
{% block css %}{% endblock % }body
h1标题/h1
div
{% block content %}{% endblock % }
/div
h1底部/h1/ body{% block js %}{% endblock % }
/ htm1继承模版 {% extends layout.html %}
{% block css %}
XXXXXX
{% endblock % }{% block content %}XXXXXXX{% endblock %}{% block js %}
XXXXXXXX
{% endblock % }