‘壹’ django中怎么动态操作数据库字段
django的ORM系统不支持修改删除字段的操作,也就是说你在写模型model文件的时候,比如说定义了这个user表,然后包含字段telphone定义,你一旦执行了manage.py syncdb 这个操作,就把表结构往数据库写死了,如果你之是删除了model文件的telphone,数据库是不被重新修改的。这个时候必须用原生sql解决,也就是说自己写SQL语句让django执行,这样的话会出很多问题,也就是说你执行了alter table users drop column telphone之后,你的model文件不知道你已经对users表结构做了修改,这样会出直接导致django应用的崩溃。所以动态字段不好做。也可能是我才疏学浅,没太理解,也许有高人能做到。不过面对ORM这样的尽量别删除字段。
‘贰’ django数据库查询操作
1.get(**kwargs)
解释:返回与筛选条件相匹配的Model对象,返回结果有且只有一个。
说明:如果符合条件的对象多于一个抛出MultipleObjectsReturned异常,如果没有找到抛出DoesNotExist异常
语法:ModelName.objects.get(itemName=itemNameValue)
例子:Author.objects.get(id=1)
‘叁’ django sqlite可以用sql语句操作吗
sqlite3 使用
1、import sqlite3 确认系统中是否安装
2、进入当前项目目录,cmd后运行python,进入命令行模式
3、import sqlite3,
sqlite3.connect('{path\name.db}') #大括号内表示自定义,真实情况没有大括号
4、修改settings.py文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': {path\name.db}',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
5、进入数据库文件界面,运行python manage.py shell
from django.db import connection
cur = connection.cursor()
如果没报错,则表示配置成功
6、修改models.py文件,配置自己的表
例如:
from django.db import models
from django.contrib import admin
# Create your models here.
class BlogPost(models.Model):
title = models.CharField(max_length = 150)
body = models.TextField()
timestamp = models.DateTimeField()
class Meta:
ordering = ['-timestamp']
7、创建数据库内容
python manage.py syncdb
根据提示输入,表示连接成功
注:以上只表示对数据库的创建,连接和使用,不包含其它内容。
‘肆’ python Django 生成sql语句
Django提供了sql,sql_all命令来生成MODEL的SQL语句,当定义好DjangoModel后,可以在初始化调用Syncdb方法来自动在数据库里面生成相应的表。
Model定义如下:
classTestModel(models.Model):
Name=models.CharField(max_length=64,blank=True)
>>>fromdjango.core.management.colorimportno_style
#Style是用来输出语句时着色的
>>>fromdjango.dbimportconnection
>>>fromdjango.db.backendsimportcreation
#这里面有个类BaseDatabaseCreation,就是用来生成SQL语句的。
>>>T=TestModel()
>>>c=creation.BaseDatabaseCreation(connection)
>>>c.sql_create_model(T,no_style())[0]
['CREATETABLE"abc"( "id"integerNOTNULLPRIMARYKEY, "Theme"varchar(64)NOTNULL ) ;']
这样就可以通过Django取得这个模型的SQL定义语句了,并且针对不同的数据库处理Django已经帮做好了。
‘伍’ django 如何执行sql语句,例如select * from temp t where t.a like '%ni%'
首先导入:
from django.db import connection
然后创建一个cursor,然后就执行吧。
cursor = connection.cursor()
cursor.execute("select * from table")
执行完别忘了关闭连接。
cursor.close()
my friend do you know?
‘陆’ 如何在Django中直接使用sql语句
执行SQL语句要看你使用什么样的数据库,一般来说数据库有两种接口,一种是命令行接口,一种是GUI界面的程序管理接口,比如 mysql,你可以在命令行执行mysql来进行执行,也可以使用phpmyadmin、navcat之类的第三方的GUI管理工具来执行。
‘柒’ 我的网站中有一个预约栏目,我想将其与我的数据库连接起来,使用python和sql语句
Django提供了sql,sql_all命令来生成MODEL的SQL语句,当定义好Django Model后,可以在初始化调用Syncdb方法来自动在数据库里面生成相应的表。Model定义如下:class TestModel(models.Model):Name=models.CharField(max_length=64,blank=True)>>> from django.core.management.color import no_style #Style是用来输出语句时着色的>>> from django.db import connection>>> from django.db.backends import creation#这里面有个类BaseDatabaseCreation,就是用来生成SQL语句的。>>> T=TestModel()>>> c=creation.BaseDatabaseCreation(connection)>>>c.sql_create_model(T,no_style())[0]['CREATE TABLE "abc" (\n "id" integer NOT NULL PRIMARY KEY,\n "Theme" varchar(64) NOT NULL\n)\n;']这样就可以通过Django取得这个模型的SQL定义语句了,并且针对不同的数据库处理Django已经帮做好了。
‘捌’ 如何在django
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。
Django基于MVC的设计十分优美:
对象关系映射 (ORM,object-relational mapping)
以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。
URL 分派
使用正则表达式匹配URL,你可以任意设计的URL,没有框架的特定限定。象你喜欢的一样灵活。
模版系统
使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。
表单处理
你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单。
Cache系统
可以挂在内存缓冲或其它的框架实现超级缓冲 -- 实现你所需要的粒度。
会话(session),用户登录与权限检查
快速开发用户会话功能。
国际化
内置国际化系统,方便开发出多种语言的网站。
自动化的管理界面
不需要你花大量的工作来创建人员管理和更新内容。Django自带一个ADMIN site,类似于内容管理系统。
‘玖’ 怎么在django里面执行sql语句
首先导入: from django.db import connection 然后创建一个cursor,然后就执行吧。 cursor = connection.cursor() cursor.execute("select * from table") 执行完别忘了关闭连接。 cursor.close() 我也是Django初学者