首页>>后端>>Python->Django怎么获取新增数据的ID(django怎么实现从数据库获取)

Django怎么获取新增数据的ID(django怎么实现从数据库获取)

时间:2023-12-01 本站 点击:0

本篇文章首席CTO笔记来给大家介绍有关Django怎么获取新增数据的ID以及django怎么实现从数据库获取的相关内容,希望对大家有所帮助,一起来看看吧。

本文目录一览:

1、怎么在django中获取URL上的参数2、django怎样获得框架自动定义的自增id字段3、Django 插入数据后,获取该数据id的方法4、django 获取post传递的json数据5、Django使用save新增一条数据之后如何获取自增id6、关于django中取得当前登录用户id的问题

怎么在django中获取URL上的参数

在django中获取URL上的参数:

URL='admin/action?name=xxxpwd=xxx' 以上格式中,name和pwd是html中表单标记的id,比如一个input的ID。xxx代表一个值,可以是固定,也可以是js获取的input输入框的值等。

django怎样获得框架自动定义的自增id字段

django自定义字段类型,实现非主键字段的自增

# -*- encoding: utf-8 -*-from django.db.models.fields import Field, IntegerFieldfrom django.core import checks, exceptionsfrom django.utils.translation import ugettext_lazy as _class AutoIncreField(Field):

description = _("Integer")

empty_strings_allowed = False

default_error_messages = { 'invalid': _("'%(value)s' value must be an integer."),

} def __init__(self, *args, **kwargs):

kwargs['blank'] = True

super(AutoIncreField, self).__init__(*args, **kwargs) def check(self, **kwargs):

errors = super(AutoIncreField, self).check(**kwargs) # 每张表只能设置一个字段为自增长字段,这个字段可以是主键,也可以不是主键,如果不是主键,则必须设置为一种“键(key)”

# (primary key)也是键(key)的一种,key还包括外键(foreign key)、唯一键(unique key)

errors.extend(self._check_key()) return errors def _check_key(self):

if not self.unique: return [

checks.Error( 'AutoIncreFields must set key(unique=True).',

obj=self,

id='fields.E100',

),

] else: return [] def deconstruct(self):

name, path, args, kwargs = super(AutoIncreField, self).deconstruct() del kwargs['blank']

kwargs['unique'] = True

return name, path, args, kwargs def get_internal_type(self):

return "AutoIncreField"

def to_python(self, value):

if value is None: return value try: return int(value) except (TypeError, ValueError): raise exceptions.ValidationError(

self.error_messages['invalid'],

code='invalid',

params={'value': value},

) def db_type(self, connection):

return 'bigint AUTO_INCREMENT'

def rel_db_type(self, connection):

return IntegerField().db_type(connection=connection) def validate(self, value, model_instance):

pass

def get_db_prep_value(self, value, connection, prepared=False):

if not prepared:

value = self.get_prep_value(value)

value = connection.ops.validate_autopk_value(value) return value def get_prep_value(self, value):

value = super(AutoIncreField, self).get_prep_value(value) if value is None: return None

return int(value) def contribute_to_class(self, cls, name, **kwargs):

assert not cls._meta.auto_field, "A model can't have more than one AutoIncreField."

super(AutoIncreField, self).contribute_to_class(cls, name, **kwargs)

cls._meta.auto_field = self def formfield(self, **kwargs):

return None

Django 插入数据后,获取该数据id的方法

'''

class Car(models.Model):

id = models.AutoField(primary_key=True)

name = models.CharField(max_length=100)

top_speed = models.IntegerField()

'''

'''

car = Car(name=car_name, top_speed=top_speed)

try:

car.save()

response = json.dumps([{ 'Success': 'Car added successfully!', 'id': car.id}])

'''

django 获取post传递的json数据

因为客户端传递过来的数据是json数据,可以看成一个json对象。不是传过来的post表单,所以你用request.POST.get('ID', '')这种肯定取不到值的。

def datasave(request):

    dict = {}

    info = 'Data log save success'

    try:

        if request.method == 'POST':

            req = simplejson.loads(request.raw_post_data)

            username = req['username']

            password = req['password']

            datas = req['datas']

            game_id1 = datas[0]['game_id']

   except:

        import sys

        info = "%s || %s" % (sys.exc_info()[0], sys.exc_info()[1])

    dict['message']=info

    dict['create_at']=str(ctime())

    json=simplejson.dumps(dict)

    return HttpResponse(json)

request.raw_post_data表示的是从客户端发送过来的原始数据,为了纯字符串, 通过simplejson的loads方法将其转换为字典数据类型req.

    上面的代码也演示了如何以JSON格式作为响应值, 而非HTML, 即通过simplejson的dumps方法, 将字典数据dict序列化为字符串形式,将通过HttpResponse返回.

Django使用save新增一条数据之后如何获取自增id

back = models.Back.objects.get(bookname=bookname)    # 查询你保存的那本书的记录

print(back.id)    # 打印出你要的新增记录的id值

关于django中取得当前登录用户id的问题

Django的做法,是在artivle里面定义一个指向user的外键,这样就不用获得用户id,直接把用户对象赋值给那个外键属性就行了。

结语:以上就是首席CTO笔记为大家整理的关于Django怎么获取新增数据的ID的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django怎么实现从数据库获取、Django怎么获取新增数据的ID的相关内容别忘了在本站进行查找喔。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/5541.html