当前位置: 首页 > news >正文

乐清网站制作推广饭店的网站建设进行评价

乐清网站制作推广,饭店的网站建设进行评价,网站开发技术问题,网站流量利用首 Django中的模型对应数据库中的一张表格。 定义模型 player.py from django.db import modelsclass Player(models.Model):idx models.IntegerField(uniqueTrue)def __str__(self):return str(self.id)每个模型需要继承models类,如上Player模型定义了一个整形…

Django中的模型对应数据库中的一张表格。

定义模型

player.py

from django.db import modelsclass Player(models.Model):idx = models.IntegerField(unique=True)def __str__(self):return str(self.id)

每个模型需要继承models类,如上Player模型定义了一个整形字段idx。常见字段类型有:

字段

描述
IntegerField整形
FloatField浮点型
CharField字符串类型

TextField

长文本类型
BooleanField布尔类型

每个字段可定义参数:

参数取值描述
nullTrue/False是否为空
uniqueTrue/False字段是否唯一
defaultauto字段默认值
max_lengthint字段最大长度
primary_keyTrue/False是否为主键

迁移数据

定义好模型后,需要进行迁移才能在数据库中看到表格:

python manage.py makemigrations // 生成迁移文件
python manage.py migrate // 执行迁移

后台管理

Django自带一个后台,访问localhost/admin/可以看到,如果想让自己创建的表格能够在后台可视化,需要将表格进行注册。在models所属app目录下编辑admin.py:

from django.contrib import admin
from app1.models.player import Player # 引入模型# Register your models here.admin.site.register(Player) # 注册模型

迁移后需要重启服务器,admin后台才能看到更新之后的自定义表格。

数据库操作

Django定义了一系列API对数据库执行操作,无需关注不同数据库间sql语句的差别,例如查询Player的所有记录:

from django.http import HttpResponse
from app1.models.player import Playerdef GetPlayersView(request):player = Player.objects.all()for p in player:print(p.idx)return HttpResponse("")

常用查询操作如下:

方法描述返回
all查询所有查询集(可当做列表)
filter多条查询列表
get单条查询一条数据,查询失败报错
count查询结果数整数

一般查询不确定结果使用filter,如查询一个idx为10010的用户,可以使用

player = Player.objects.filter(idx=10010)
if player:print(player[0].idx)
else:print("no result")

这样可以避免get方法查询为空时的报错。

Player.objects.create(idx=1)

players = Player.objects.filter(status=123)
for player in players:player.delete()

# 单条修改
player = Player.objects.get(id=1)
player.status = 123
player.save()# 批量修改
players = Player.objects.filter(id=1).update(status=123)

User模型

Django自带User模型,内置用户认证体系,开箱即用。

User模型常用字段:

字段类型描述
idint主键,用户编号
usernamevarchar用户名
passwordvarchar密码
is_activetinyint用户状态,为0则封号

常用操作:

from django.contrib.auth.models import User# 创建user
User.objects.create_user(username="", password="")# 修改密码
user = User.objects.get(id=1)
user.set_password(passwd)
user.save()# 验证密码
user.check_password(passwd)

Auth模块

常见方法:

方法描述
authenticate(username, password)用户验证
login(HttpRequest, user)登录
logout(request)登出,注销会话
is_authenticated()用户登录状态

用户登录视图:

from django.http import JsonResponse
from django.contrib.auth import authenticate, logindef signin(request):data = request.POSTusername = data.get("username")password = data.get("password")user = authenticate(username=username, password=password) # 验证用户if not user:return JsonResponse({"result": "用户名或密码错误"})if user.is_authenticated():return JsonResponse({"result": "用户已登录"})if user.is_authenticated():return JsonResponse({"result": "用户已登录"})if not user.is_active:return JsonResponse({"result": "账号被封"})# 登录用户login(request, user)return JsonResponse({"result": "success"})

扩展用户

Django自带的User未必能够满足我们所有的需求,故其提供了扩展User的方式,而个人更喜欢偷个懒,例如文章开头的Player想对User扩展,我会这样写:

from django.db import models
from django.contrib.auth.models import Userclass Player(models.Model):user = models.OneToOneField(User, on_delete=models.CASCADE)...def __str__(self):return str(self.user)

将User和Player俩个表做个关联,让user成为Player的一个字段来使用。

(模型的关系除了一对一OneToOneField,还有一对多ForeignKey和多对多ManyToManyField,on_delete的参数CASCADE表级联删除,还有PROTECT和DO_NOTHING等对扩展表的操作)

http://www.yayakq.cn/news/903233/

相关文章:

  • 做宣传册从哪个网站找素材搜索引擎推广的特点
  • 建设部网站建造师管理号济南建设信用网站
  • 面对撞库 网站应该怎么做蘑菇街网站怎么做
  • 网站开发发展趋势2018自闭症网站的建设意义
  • 中国建设劳动学会是假网站吗成都建设局网站
  • 挂马网站教程重庆刚刚发布
  • 个人建站赚钱餐饮品牌vi设计包括哪些
  • 平台做网站点击软件开发培训费用
  • 电子商务网站设计怎么做网站开发工程师发展趋势
  • 云南医疗seo整站优化青岛建设集团 招聘信息网站
  • wordpress电影主题网站一种子网站做的很好的视频广告
  • 网站建设在哪些方面影视网站开发背景
  • 使用cnnic证书的网站哈尔滨最新出入规定
  • 做游戏的php网站有哪些成品网站w灬源码在线看
  • 如何做网站路径分析正规的环保行业网站开发
  • 做网站设计要多少钱网站建设技术入股合同
  • 惠州网站建设一般多少钱网站开发 卓优科技
  • 做网站播放未上映的电影百度推广公司
  • 遵义市和城乡建设局网站免费网站建站下载
  • 南通企业网站排名oss静态网站托管
  • 网站建设哪里有学如何给网站引流
  • 现在用什么做网站湛江赤坎海田网站建设招聘
  • 网站建设 提供源码wordpress怎么适应手机
  • 国外网站关键词中铁建设集团有限公司基础设施事业部
  • 网站建设成本表网络营销课程期末总结
  • 没有公众号建微信网站咸阳网站建设xymokj
  • wordpress本地搭建网站a短网址生成防红
  • 学生做网站的工作室0基础建站教程
  • 电子商务网站推广怎么做html菜单改为wordpress
  • 攻击网站常用方法深喉咙企业网站模板