简介:许多朋友询问有关如何编写Django数据库参数接口的问题。本文的首席CTO注释将为您提供一个详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!
让我首先谈论前排条件
1.首先构建django环境win+r打开命令提示符pip安装django
3.然后创建一个自己的应用程序
同样,在命令提示符的路径上,输入新创建的项目所在的路径,输入python manage.py startapp xxx(这是指您要创建的名称),您可以看到创新的编辑器可以看到
4.正式开始开发邮政请求
首先在seetings.py文件中设置参数以对其进行修改,如图所示
Views.py
最后,在模板文件夹下创建一个HTML文件以简单地写下前端
我直接发布登录。html我在这里写的
代码部分是要完成效果
您也可以输入提琴手检查验证。为了找到更好的选择,我们首先打开提琴手,然后输入用户名密码。
你可以得到这样的包
用户名,密码的值也与我们输入的输入一致
在此处完成简单的帖子请求开发
它是由通过ADO访问数据库的类封装的,然后可以根据不同的数据库将其传输到不同的连接字符串中,以实现对各种数据库的访问。实际上,操作各种数据库的SQL语句是相同的,也就是说数据库的连接字符串不同。当然,不同的数据库添加数据源。
1)使用API关键字识别接口URL
2)优先选择接口数据安全性确定来选择HTTPS协议
3)如果界面有多个版本,则需要在URL中的出价中反映
4)接口参数的数据源称为资源。在URL中,通常使用资源复数形式。一个接口可以总结资源的多重操作方法
5)有许多请求方法,如何使用URL来处理如何确保它不混淆,以通过识别请求方法来识别资源方法
2)状态代码文本提示
4)无法直接返回的资源(子资源,图片,视频和其他资源),返回资源的URL链接
WebService实际上是Web API,但是为了促进使用通用数据格式,例如XML。因此,您可以使用第三方应用程序(例如第三 - 方XML库)自己构建此类环境,或使用第三派对应用,例如Djangorestframework
9.SQL Server7.0/2000数据库
#IMPORT“ C:程序文件Common Filessystemadomado15.dll”
no_namespace inname(“ eof”,“ endoffile”)
:: conitialize(null);//初始化OLE/COM库环境以准备访问ADO接口
_recordSetptr m_precordset(“ adodb.recordset”);
_connectionptr m_pConnection(“ adodb.connection”);
_BSTR_T BSTRSQL(“ Select *来自Stu_info”);//
char * query_cmd =“从stu_info删除sname ='ben lang”;
尝试
{{{
//创建连接对象
m_pconnection.createinstance(“ adodb.connection”);
//设置必须是BSTR类型或_BSTR_T类型的连接字符串
_BSTR_T strconnect =“ provider = sqloledb; server =(local); database = student; uid = sa; pwd = 123;;;;;;;;;;;;;;;;;;;;;;;;
//如果数据库在网络上,则服务器的形状(192.168.1.5,3340)
//用户SA和密码123仅适用于我的库
m_pConnection -pen(strconnect,“”,“”,Admodeunknown);
if(m_pconnection == null)
CERR“ LIND数据错误!
”
//创建记录集对象
m_precordset.createinstance(__ uuidof(recordset));
//在表中获取记录
m_precordset-open(bstrsql,m_pconnection.getinterfaceptr(),
采用,adlockoptimistic,adcmdText);
_variant_t vsnum,vsname,vsage,vssex,vsmajor;//相应库中的豆类,name,sage,ssex,smajor
代表“学生名称年龄姓氏姓”;
cout”
------------------------------------------------------------------------------------------------------
”
while(!m_precordset-effile))
{{{
vsnum = m_precordset-getCollect(_variant_t((long)0));//
vsname = m_precordset-getCollect(“ name”);
vsage = m_precordset-getCollect(“ sage”);
vsSex = m_precordset-getCollect(“ ssex”);
vsmajor = m_precordset-getCollect(“ smajor”);
if(vsnum.vt!= vt_null vsname.vt!= vt_null vsage.vt!= vt_null
vssex.vt!= vt_null vsmajor.vt!= vt_null)
{{{
cout.setf(ios ::左);
cout setw(14)(char*)(_ bstr_t)vsnum;
cout setw(14)(char*)(_ bstr_t)vsname;
cout setw(8)vsage.lval;
cout setw(8)(char*)(_ bstr_t)vssex;
cout setw(20)(char*)(_ bstr_t)vsmajor;
cout.unsetf(ios ::左);
cout endl;
}
m_precordset-movenext();///转到下一个记录
}
cout”
------------------------------------------------------------------------------------------------------
”
cout”
请输入您要添加的学生信息
”
代表“学生编号:” ;;
cin student.snum;
cout”
姓名:”;
cin student.sname;
cout”
年龄:”;
cin学生。
cout”
性别:”;
CIN学生。
cout”
主要的:”;
cin student.smajor;
m_precordset-movefirst();//转到第一个记录
m_precordset-addnew();///添加新记录
m_precordset-putCollect(“ num”,_ variant_t(student.snum));
m_precordset-putCollect(“ sname”,_ variant_t(student.sname));
m_precordset-putCollect(“ sage”,_ variant_t(student.sage));
m_precordset-putCollect(“ ssex”,_ variant_t(student.ssex));
m_precordset-putCollect(“ smajor”,_ variant_t(student.smajor));
m_precordSet-update();
m_pconnection-execute(query_cmd,null,1);//使用执行执行SQL语句删除
m_precordset-close();//关闭记录集
}
//捕获异常
捕获(_com_error e)
{{{
//显示错误信息
CERR”
错误:“(char*)e.descripting(); //投掷异常
}
if(m_pconnection状态)
m_pConnection-close();
:: countinitialize();
3.显示表
/*
#IMPORT“ C:程序文件Common Filessystemadomado15.dll”
no_namespace inname(“ eof”,“ endoffile”)
*/
共同致命(null);
_bstr_t varsource =“ provider = microsoft.jet.oledb.4.0; data source =*。mdb”;
// _ bstr_t varsource =“ data source = myServerAddress; onirter catalog = mydatabase;用户id = myusername; password; password = mypassword;''
_connectionptr m_pConnection(_UUIDOF(connection));
m_pConnection-open(varsource,“”,“”,admodeunknow);
//打开默认值的属性(Admoderead(仅读),AndodeWrite,AndodereadWrite(可读写作)等)
_recordSetptr m_pset(_UUID(recordSet));
尝试 {
hresult hr = m_pset-opn(%% 1,m_pconnection.getinterfaceptr(),
采用,adlockpessimistic,adcmdText);
}
捕获(_com_error *e){{{
afxMessageBox(e-errromessage());
}
如果(成功(HR)))
{{{
//桌子成功
}
fieldSptr p_fields = m_pset-fields;
fieldptr p_field;
_variant_t var_index;
lpcstr field_name;
int index = 0;
_bstr_t bstr_field_name;
int countfields = p_fields-getCount();
cString *colorn = new cstring [countfields];
clistctrl *plist =(clistCtrl *)getDlgitem(%% 1);// idc_list_tabledata
验证(PLIST);
plist-Deleteallitems();
for(index = 0; indexcountfields; index ++)
{{{
var_index.vt = vt_i4;
var_index.ival = index;
p_field = p_fields-item [var_index];
bstr_field_name = p_field-getName();
field_name =(lpcstr)bstr_field_name;
列[index] = field_name;
int columnWidth =列[index] .getLength()*15;
plist-insertcolumn(index,field_name,lvcfmt_center,columnWidth);
}
int i = 0;
_bstr_t vcol;
// PLIST-SETTEXTBKCOLOR(RGB(122,200,122));
// PLIST-SETTEXTCOLOR(RGB(0,0,200));
while(!m_pset-adoeof)
{{{
plist-insert(i,atoi(i));
for(int j = 0; jcountfields; j ++)
{{{
vcol = m_pset-getCollect(((long)j);
plist-setetemtext(i,j,vcol);
}
m_pset-movenext();
i ++;
}
CountInitialize(null);
4.操作表格
/*
#IMPORT“ C:程序文件Common Filessystemadomado15.dll”
no_namespace inname(“ eof”,“ endoffile”)
*/
共同致命(null);
_bstr_t varsource =“ provider = microsoft.jet.oledb.4.0; data source =*。mdb”;
// _ bstr_t varsource =“ data source = myServerAddress; onirter catalog = mydatabase;用户id = myusername; password; password = mypassword;''
_connectionptr m_pConnection(_UUIDOF(connection));
m_pConnection-open(varsource,“”,“”,admodeunknow);
//打开默认值的属性(Admoderead(仅读),AndodeWrite,AndodereadWrite(可读写作)等)
_recordSetptr m_pset(_UUID(recordSet));
尝试 {
hresult hr = m_pset-opn(%% 1,m_pconnection.getinterfaceptr(),
采用,adlockpessimistic,adcmdText);
}
捕获(_com_error *e){{{
afxMessageBox(e-errromessage());
}
如果(成功(HR)))
{{{
//桌子成功
}
fieldSptr p_fields = m_pset-fields;
fieldptr p_field;
_variant_t var_index;
lpcstr field_name;
int index = 0;
_bstr_t bstr_field_name;
int countfields = p_fields-getCount();
cString *colorn = new cstring [countfields];
clistctrl *plist =(clistCtrl *)getDlgitem(%% 1);// idc_list_tabledata
验证(PLIST);
plist-Deleteallitems();
for(index = 0; indexcountfields; index ++)
{{{
var_index.vt = vt_i4;
var_index.ival = index;
p_field = p_fields-item [var_index];
bstr_field_name = p_field-getName();
field_name =(lpcstr)bstr_field_name;
列[index] = field_name;
int columnWidth =列[index] .getLength()*15;
plist-insertcolumn(index,field_name,lvcfmt_center,columnWidth);
}
int i = 0;
_bstr_t vcol;
// PLIST-SETTEXTBKCOLOR(RGB(122,200,122));
// PLIST-SETTEXTCOLOR(RGB(0,0,200));
while(!m_pset-adoeof)
{{{
plist-insert(i,atoi(i));
for(int j = 0; jcountfields; j ++)
{{{
vcol = m_pset-getCollect(((long)j);
plist-setetemtext(i,j,vcol);
}
m_pset-movenext();
i ++;
}
CountInitialize(null);
6.关闭时丢弃连接
:: exitinstance()
{{{
if(adsteopen == adoconn-state)
adoconn-close();
Adoconn.Release();
if(adsteopen == m_padoset状态)
m_padoset-close();
m_padoset.release();
返回cwinapp :: exitinstance();
}
22. SQL和存储过程的批处理执行
22.1。如果使用ODBC访问数据库,则可以参考以下代码:
cdatabase * pdatabase =新的cdatabase;
尝试
{{{
pdatabase-openex(_t(“ dsn = odbcname; uid = %% 1; pwd = %% 2”),cdatabase :: noodbcdialog);
}
捕获(CDBException,e)
{{{
删除pdatabase;
返回;
} end_catch
sql.format(“ exec sp_name”);//如果有参数
pdatabase-executesql(sql);
pdatabase-close();
删除pdatabase;
22.2,使用ADO调用存储程序
_connectionptr conn = null;
_recordSetptr rs = null;
_commandptr cmd = null;
共同致命(null);
const.createinstance(__UUIDOF(连接));
Rs.Createinstance(__UUIDOF(ROCEDSET));
cmd.Createinstance(__UUIDOF(命令));
con-open(l“ db”,l“ sa”,l“”,采用conseenunspeced);//正常打开
//以下是_commandptr对象的参数的分配和调用
cmd-activeConnection = conn;
cmd-commandText =“ sp_test”;
//在数据库中,实际上有此测试存储过程,Select *从Atable中选择,不会传递参数
cmd-commandType = adcmdStoredProc;
cmd-pameters-refresh();
rs = cmd-execute(null,null,adcmdunknown);// com错误。
//注释的代码已提交到直接的SQL语句并正确运行。
// cmd-activeConnection = conn;
// cmd-commandText =“ select * fromable”;
// cmd-commandType = adcmdtext;
// cmd-pameters-refresh();
// rs = cmd-execute(null,null,adcmdunknown);
rs-close();
con-close();
countinitialize();
结论:以上是首席CTO注释为每个人编译的Django数据库参数接口的所有内容。感谢您阅读本网站的内容。我希望这对您有帮助。有关如何编写Django数据库参数接口的更多信息,请不要忘记在此站点上找到它。