导读:很多朋友问到关于django数据库参数接口怎么写的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
使用django开发一个比较简单的post接口
先把前置条件说一下
1.首先搭建好django环境 win+r 打开命令提示符 pip install django
3.然后创建一个自己的app
同样在命令提示符 进入刚创建的工程所在路径 输入 python manage.py startapp xxx(这个指你要创建的app名字),创新编辑器可以看到
4.正式开始开发一个post请求
首先设置好参数 在seetings.py文件里如图修改
views.py
最后在templates文件夹下创建一个html文件简单地写一下前端
我这里直接贴自己写的 login.html
code部分算是完成 看一下效果
还可以进入fiddler查看验证,为了比较好查到 我们先打开fiddler后输入用户名 密码后fiddler上 remove all session
可以得到这么一条数据包
username,password的值也和我们输入的一致
到此完成一个简单的post请求开发
请问你是怎么实现的一个项目使用不同数据库,接口怎么写的
自己封装一个用ADO方式访问数据库的类,然后再根据不同的数据库传入不同的连接字符串就可以实现对各种数据库的访问。其实操作各种数据库的sql语句都是一样的,就是刚开始打开数据库的连接字符串不一样。当然不同的数据库添加数据源的方式不一样。
Django RESTframework(一):接口与规范
1)用 api 关键字标识接口 url
2)接口数据安全性决定优先选择 https 协议
3)如果接口有多个版本存在,需要在 url 中标识体现
4)接口参数的数据源称之为资源,在url中一般采用 资源复数 形式,一个接口可以概括对该资源的多种操作方式
5)请求方式有多种,用一个url处理如何保证不混乱-通过请求方式标识操作资源方式
2)资源的状态码文字提示
4)不能直接返回的资源(子资源、图片、视频等资源),返回该资源的 url 链接
django rest framework接口怎么传参进行数据查询?
webservice其实就是web api,不过为了便于统一使用了通用的数据格式,比如xml。所以你完全可以自己使用一个第三方xml库来自己构建这样的环境,或者使用djangorestframework这样的第三方app来直接帮你快速开发
做个数据库接口
9.Sql Server7.0/2000数据库
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备
_RecordsetPtr m_pRecordset("ADODB.Recordset");
_ConnectionPtr m_pConnection("ADODB.Connection");
_bstr_t bstrSQL("select * from stu_info"); //查询语句
char * query_cmd = "DELETE FROM stu_info WHERE sname = ’本拉登’";
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;";
//若数据库在网络上则Server为形如(192.168.1.5,3340)
//用户sa和密码123只是针对我的库
m_pConnection-Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr"Lind data ERROR!\n";
// 创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的记录
m_pRecordset-Open(bstrSQL,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
_variant_t vsnum,vsname,vsage,vssex,vsmajor; //对应库中的snum,sname,sage,ssex,smajor
cout "学号 姓名 年龄 姓别 专业";
cout "\n----------------------------------------------------------------\n";
while (!m_pRecordset-EndOfFile)
{
vsnum = m_pRecordset-GetCollect(_variant_t((long)0));//这儿给字段编号和字段名都可以
vsname = m_pRecordset-GetCollect("sname");
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::left);
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::left);
cout endl;
}
m_pRecordset-MoveNext(); ///移到下一条记录
}
cout "\n----------------------------------------------------------------\n";
cout "\n请输入你要添加的学生信息\n";
cout "学号:";
cin student.snum;
cout "\n姓名:";
cin student.sname;
cout "\n年龄:";
cin student.sage;
cout "\n姓别:";
cin student.ssex;
cout "\n专业:";
cin student.smajor;
m_pRecordset-MoveFirst(); //移动到第一条记录
m_pRecordset-AddNew(); ///添加新记录
m_pRecordset-PutCollect("snum",_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); //用Execute执行sql语句来删除
m_pRecordset-Close(); // 关闭记录集
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
cerr "\nERROR:" (char*)e.Description();//抛出异常
}
if(m_pConnection-State)
m_pConnection-Close();
::CoUninitialize();
3.显示表格
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL);
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb";
//_bstr_t varSource="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
_ConnectionPtr m_pConnection(_uuidof(Connection));
m_pConnection-Open(varSource,"","",adModeUnknow);
//打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)
_RecordsetPtr m_pSet(_uuid(Recordset));
try {
HRESULT hr=m_pSet-Open(%%1,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error *e){
AfxMessageBox(e-ErrorMessage());
}
if(SUCCESSED(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 *Column=new CString[countfields];
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1);//IDC_LIST_TABLEDATA
VERIFY(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;
Column[index]=field_name;
int ColumnWidth=Column[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-SetItemText(i,j,vCol);
}
m_pSet-MoveNext();
i++;
}
CoUninitialize(NULL);
4.操作表格
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL);
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb";
//_bstr_t varSource="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
_ConnectionPtr m_pConnection(_uuidof(Connection));
m_pConnection-Open(varSource,"","",adModeUnknow);
//打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)
_RecordsetPtr m_pSet(_uuid(Recordset));
try {
HRESULT hr=m_pSet-Open(%%1,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error *e){
AfxMessageBox(e-ErrorMessage());
}
if(SUCCESSED(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 *Column=new CString[countfields];
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1);//IDC_LIST_TABLEDATA
VERIFY(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;
Column[index]=field_name;
int ColumnWidth=Column[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-SetItemText(i,j,vCol);
}
m_pSet-MoveNext();
i++;
}
CoUninitialize(NULL);
6.关闭时断开连接
::ExitInstance()
{
if (adStateOpen == ADOConn-State)
ADOConn-Close();
ADOConn.Release();
if(adStateOpen == m_pADOset-State)
m_pADOset-Close();
m_pADOset.Release();
return CWinApp::ExitInstance();
}
22.批量执行SQL和存储过程
22.1、如果用ODBC访问数据库的话,可参考下列代码:
CDatabase * pDatabase = new CDatabase;
TRY
{
pDatabase-OpenEx( _T("DSN=ODBCName;UID=%%1;PWD=%%2"), CDatabase::noOdbcDialog);
}
CATCH (CDBException, e)
{
delete pDatabase;
return;
}END_CATCH
SQL.Format("exec sp_Name");//有参数的话直接写再后面
pDatabase-ExecuteSQL(SQL);
pDatabase-Close();
delete pDatabase;
22.2、用ADO调用存储过程
_ConnectionPtr Conn = NULL;
_RecordsetPtr Rs = NULL;
_CommandPtr Cmd = NULL;
CoInitialize(NULL);
Conn.CreateInstance ( __uuidof(Connection));
Rs.CreateInstance (__uuidof(Recordset));
Cmd.CreateInstance (__uuidof(Command));
Conn-Open(L"db", L"sa", L"", adOpenUnspecified); //打开正常
//如下为_CommandPtr对象参数的赋值和调用
Cmd-ActiveConnection = Conn;
Cmd-CommandText = "SP_TEST";
//数据库中实际存在这个测试存储过程,select * from atable,不传递参数
Cmd-CommandType = adCmdStoredProc;
Cmd-Parameters-Refresh();
Rs = Cmd-Execute( NULL,NULL, adCmdUnknown ); //COM出错。
//注释掉的代码为直接的SQL语句提交,运行正确。
//Cmd-ActiveConnection=Conn;
//Cmd-CommandText = "select * from atable";
//Cmd-CommandType = adCmdText;
//Cmd-Parameters-Refresh();
//Rs = Cmd-Execute(NULL,NULL,adCmdUnknown);
Rs-Close();
Conn-Close();
CoUninitialize();
结语:以上就是首席CTO笔记为大家整理的关于django数据库参数接口怎么写的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django数据库参数接口怎么写的相关内容别忘了在本站进行查找喔。