Django中sql与DB的交互——非ORM

In your views.py,you can code like this :

 1 import MySQLdb
 2 def index(request):
 3     conn=MySqldb.connect(
 4         host=‘127.0.0.1‘,
 5         port=3306,
 6         user=‘root‘,
 7         passwd=‘root‘,
 8         db=‘pythonweb‘,
 9         charset=‘utf8‘,     #须与建立数据库时编码一致
10
11         )
12     cursor=conn.cursor()   #定义游标
13     cursor.execute("SELECT * FROM firstapp_article")
14     results=cursor.fetchmany()
15
16     articles=[]
17     for result in  results:
18         articles.append(
19             {
20                 # 这里与数据库中定义的表相匹配关联
21                 #result[0]为id
22                 ‘title‘:result[1],
23                 ‘content‘:result[2],
24                 ‘views‘:result[3],
25                 ‘likes‘:result[4],
26                 ‘createtime‘:result[5],
27                 ‘editors_choice‘:result[6],
28                 ‘cover‘:result[7],
29                 ‘url_image‘:result[8],
30             }
31
32         )
33         context={}
34         context[‘articles‘]=articles
35     return render(request,‘index.html‘,context)            
时间: 2024-11-08 11:48:28

Django中sql与DB的交互——非ORM的相关文章

Django中的app及mysql数据库篇(ORM操作)

Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都新建一个文件夹来存放项目文件,切换到这个目录下,启动命令行工具.创建一个名为mysite的Django项目: django-admin startproject mysite 创建好项目之后,可以查看当前目录下多出一个名为mysite的文件夹,mysite的文件夹目录结构如下: mysite/ ma

django中的字段、字段参数、orm操作、QuerySet相关方法:

常用字段  AutoField 自增的整形字段,必填参数primary_key=True,则成为数据库的主键.无该字段时,django自动创建. 一个model不能有两个AutoField字段. IntegerField 一个整数类型.数值的范围是 -2147483648 ~ 2147483647. CharField 字符类型,必须提供max_length参数.max_length表示字符的长度. DateField 日期类型,日期格式为YYYY-MM-DD,相当于Python中的dateti

django中使用原生sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql ( 这种方式完全不依赖model,前两种还是要依赖于model ) 实例: 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东

在Django中使用原生Sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql(这种方式完全不依赖model,前两种还是要依赖于model) 实例: 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东人员出

Django中的sql注入

Django中防止SQL注入的方法 方案一总是使用Django自带的数据库API.它会根据你所使用的数据库服务器(例如PostSQL或者MySQL)的转换规则,自动转义特殊的SQL参数.这被运用到了整个Django的数据库API中,只有一些例外:传给 extra() 方法的 where 参数.  这个参数故意设计成可以接受原始的SQL.使用底层数据库API的查询. ## select提供简单数据 # SELECT age, (age > 18) as is_adult FROM myapp_pe

django中如何生成非HTML格式的内容。

某些时候可能有这样的需求,在网页中点击一个链接或者一个按钮希望返回一张图片.一个pdf文档.一个csv文档等而非HTML.在diango中很容易做到这些.django中的view用来接收http request并返回web response.通常情况下,返回的内容为HTML,但其能够返回的不仅仅如此,还可以是上述图片.pdf文件等等.返回非HTML形式的内容的关键在于HttpResponse这个类,尤其是mimetype这个参数,通过将此参数设置为不同的值可以提示浏览器view返回了不同格式的内

Django与SQL语言中——NULL与空字符串的区别

SQL有指定空值的独特方式,它把空值叫做NULL. Null在数据库中表示 不知道的数据,主要有3种意思: 1)知道数据存在,但不知道具体值. 2)不知道数据是否存在. 3)数据不存在. 在SQL中, NULL的值不同于空字符串,就像Python中None不同于空字符串("")一样.这意味着某个字符型字段(如VARCHAR)的值不可能同时包含NULL和空字符串. 这会引起不必要的歧义或疑惑. 为什么这条记录有个NULL,而那条记录却有个空字符串? 它们之间有区别,还是数据输入不一致?

redis和python交互和django中配置用redis存储session

进入虚拟环境 workon django 下载 pip install redis 导包 from redis import * r = StrictRedis(host="localhost", port=6379, db=0) #默认参数 r = StrictRedis() #简写 r.函数名参数和redis命令和参数类似. 2.django pip install django-redis-sessions 进入django中的setting.py 添加如下配置 SESSION_

django中使用原生的sql查询实例

在app文件夹下创建database_operations.py文件,写如下内容: import pymysql from 项目名.settings import DATABASES class Database_operat(object): def __init__(self, database=DATABASES, database_name='default'): database_information = database[database_name] try: self.db =