当前位置: 首页 > 网络应用技术

如何编写Django数据库参数接口(哪个是Django的默认数据库)

时间:2023-03-08 19:01:18 网络应用技术

  简介:许多朋友询问有关如何编写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数据库参数接口的更多信息,请不要忘记在此站点上找到它。