首页 技术 正文
技术 2022年11月16日
0 收藏 866 点赞 3,773 浏览 2880 个字

(开开心心每一天~ —虫瘾师)

Python Web(Django) 与SQL SERVRE的连接————Come QQ群:607021567(里面有很多开源代码和资料,并且python的游戏也有)

(一)、SQL SERVER的基本介绍(简单)————SQL 是用于访问和处理数据库的标准的计算机语言。

(二)、Django框架——Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。

1、SQL SERVER 基本结构

  table—表:字段、记录;

   view—视图:是从一个或多个基本表中定义的虚表,相当于一个窗口,通过该窗口可以看到用户所需要的数据;

  stored procedure—存储过程:存储过程的存在独立于表,用户可以运用存储过程来完善应用程序;

  trigger—触发器:用户通过使用触发器来实现各种复杂的业务规则;

  indexes—索引:用户和角色:用户是指对数据库具有一定权限的使用者,角色是一组具有相同权限的用户集合;

这里Python Web(Django)需要主要用到的是  stored procedure—存储过程 。

stored procedure—存储过程————存储过程是SQL语句和控制语句的预编译集合,保存在数据库中,可以调用执行,并且允许用户声明变量.逻辑控制语句以及其他强大的编程功能。

我会将项目中详细用到的内容都会写下来。

2、Django框架 基本结构

—->主项目文件夹

  —–>工程文件夹

    主控文件: —–>settings.py ——主要控制你的静态文件,和python自带数据库,也可使用它来连接数据库

          —–>urls.py ——web前端通过后台需要访问的地址,并且静态文件的地址也是需要写在这里的

          —–>wsgi.py ——服务器管理处

  ——>templates :模板文件夹,可以在创建一个脚本文件夹static

这里我们不需要用python创建后自带的连接数据库文件,因为这样要考虑到没有用软件来创建项目的人,他们的文件位置也可以改变,但是项目文件夹必须有一个。

连接sql server 需要自己写py文件。

—-先要知道SQL SERVER的存储过程和表的实例:

首先创建SQL SERVER 的数据库和表,我就随便创建一个了

 

create table table_1(id int primary key identity(1,1) not null,name varchar(50) not null,age int not null)

因为是随便创建的表,所以都是默认下去的!接下来,是对存储过程。

新建存储过程:

create proc  xxxxx --存储过程名字asselect * FROM table_1--SQL 语句go

创建完之后,我们的存储过程就可以根据我们前端需要来修改了,比如如果我们做个后台登录,或者成绩查询,都需要上传学生id,并且每一次查询的信息可以放在存储过程的临时表内,也可以直接返回。

列:

USE [my_sp]GO/****** Object:  StoredProcedure [dbo].[my_sp_py]    Script Date: 05/18/2018 15:24:28 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc [dbo].[my_sp_py]    @userid int,    @page int,    @pagesize intas/*select * from table_1*/SET NOCOUNT ON;declare @count intselect @count =COUNT(*) from table_1if @count > 0  begin    create table #table --临时表的结构    (        id bigint,        userid int,        ctype nvarchar(30),        Reduce nvarchar(10),        num int,        Remarks nvarchar(max),        sum int,        uptime datetime,    )    declare @where_condition nvarchar(max)    set @where_condition = ''    if(@userid <>0)        set @where_condition = @where_condition + ' and userid='+cast(@userid as varchar)    declare @filedlist nvarchar(500)    set @filedlist = 'id,userid,ctype,Reduce,num,Remark,sum,uptime' --需要insert 到表中的字段    declare @sql nvarchar(MAX)    if @page>1      set @sql = 'SQL 语句'    else      set @sql = 'SQL 语句'    --print @sql    exec (@sql)     --执行SQL 语句    select * from #table --返回的结果  end    

因为这个是页码和每一条数的控制,userid就是需要查询时候定义的id,到这里基本我们的存储过程就写完了!接下来就是python 连接SQL SERVER 并且访问数据库中的数据,你可以点击这里看简便的处理 连接方式

首先,我们需要独立创建一个py文件,创建一个类 class sql_server:

MSSQL_INFO = {"hostname":"local","username":"local","password":"","dbname":"table_1"}

另外,因为web应用中可以使用多个sql,所以我们把数据连接的文件放在一个单独的py文件内!

模块:pyodbc–数据库连接 创建sqlmb.py文件

strconn= 'DRIVER={SQL Server};SERVER='+sql_server.MSSQL_INFO.get("hostname")+';DATABASE='+sql_server.MSSQL_INFO.get("dbname")+';UID='+sql_server.MSSQL_INFO.get("username")+';PWD='+sql_server.MSSQL_INFO.get("password")db = pyodbc.connect(strconn)return db

数据连接就到这里已经成功一半了,接下来就是我们项目中需要去访问数据库的数据了!

使用前要import 包名(sqlmb)

mssql_conn = sqlmb.mssqlserver_conn_db()c = mssql_conn.cursor()c.execute("{call my_sp_py (?,?,?)}", (userid,page,pagesize))q = c.fetchone() #fetchall所有数据c.commit()

q就是数据库中所返回的数据,也就是select所返回的内容!好了,django与sql server的处理基本就是这些内容!下次再见!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,499
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,914
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,746
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,503
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,142
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,305