精华内容
下载资源
问答
  • IOS游戏开发实战入门

    2014-09-13 21:55:31
    cocos2d 实战入门 。 从objectiveC 讲起,进阶到实际项目中运用的知识。
  • C/C++实战入门

    千人学习 2020-09-25 14:36:55
    讲师有十五年以上C/C++实际项目开发经验,亲手写过的C/C++代码上百M,丰富的实战经验,不仅仅是讲语法,更主要的是讲每一个知识点在实际项目中作用,每一个知识点都会有实际使用范例。并且,把实际项目中的编程规范...
  • │ │ ├─05 C开发环境简介及打造自己的C开发环境.mp4 │ │ ├─06 用CodeBLOCKS创建第一个C工程及简单使用.mp4 │ │ ├─07 两段C代码的比较-C语言规范编码的重要性.mp4 │ │ ├─08 C语言编码
  • C语言开发入门项目实战习题答案,刚开始学习C的同学可以看看
  • 该系统基于C/S架构的TCP协议开发,利用MySQL数据库存放客户数据。客户端通过服务器从数据库中实现对 数据的增删改查,支持多用户同时在线操作。 二 开发思路 因为选择的是TCP协议的开发,因此首先要确定协议,即...

    一 任务管理系统功能简述

    该系统基于C/S架构的TCP协议开发,利用MySQL数据库存放客户数据。客户端通过服务器从数据库中实现对
    数据的增删改查,支持多用户同时在线操作。


    二 开发思路
    因为选择的是TCP协议的开发,因此首先要确定协议,即客户端先发送命令号,在发送数据,服务器则接受命令号,再根据命令号选择不同的处理函数处理。在此介绍一下协议的开发。
    1 在客户端跟服务器的工程里都需要包含相同的命令号,例:

    enum cmd
    {
      INFO_LOGIN=1,
      INFO_EXIT,
      INFO_REGIST,
      INFO_NEW,
      INFO_REFRESH,
      INFO_SEARCH,
      INFO_Edit,
      INFO_DELETE
    };

    2 将需要发送/接受的数据放入结构体中比较方便,因此双方都需要包含相同类型的结构体,例:

    struct task{
    	char creator[10];
    	char taskname[50];
    	char taskcontent[1000];
    	char taskstarttime[15];
    	char taskendtime[15];
    	char taskcreattime[20];
    	};	char creator[10];
    	char taskname[50];
    	char taskcontent[1000];
    	char taskstarttime[15];
    	char taskendtime[15];
    	char taskcreattime[20];
    	};

    以上声明最好放在stdafx.h中共享。

    3 客户端

    CSocket m_sock;
    int nCmd = NFO_EXIT;
    task sendf;
    int nRec;
     m_sock.Send(&nCmd,sizeof(nCmd));
    m_sock.Send(&sendf,sizeof(sendf));
     m_sock.Recvive(&nRec,sizeof(nRec);//接受结果

       服务器端

    CSocketL m_sock;
    int nCmd;
    task recvf;
    m_sock.Recvive(&nCmd,sizeof(nCmd));
    m_sock.Recvive(&recvf,sizeof(recvf));
    int nRet = deal();//数据处理完之后
    m_sock.Send(&nRet,sizeof(nRet));//发送结果,返回值的类型根据需要定

      当然在发送命令号和数据之间也可以收发一下反馈数据
    4 服务器在接受到数据后转入相应的处理函数,在处理函数中与数据库交换数据,从而返回结果。
    5 流程图:

    三 开发环境及所需知识储备
    1 开发工具:VC++6.0 、Mysql 5.6
    2 开发环境的配置:
    (1)到MySQL官网(Oracle)上下载 MySQL-connector-C文件,选择32位的,解压之后将include文件夹和lib文件夹
    放到工程文件夹里(推荐放,不放也行,只要记住文件夹路径即可)
    (2)打开VC -> 工具 -> 选项 -> 目录 下的 目录\include files: //以我的文件路径为例
    加上include文件夹路径,例:C:\test\Server\include   
      打开VC -> 工具 -> 选项 -> 目录 下的 目录\Library files:
    加上lib文件夹路径,例:C:\test\Server\lib
    (3)新建工程后,在StdAfx.h文件中添加以下代码:

    #include <winsock2.h>  //若用 winsock.h会报错
    #include <mysql.h>  
    #pragma comment (lib,"ws2_32.lib")  
    #pragma comment(lib,"libmysql.lib") 

    (4)将下载的lib文件夹中的libmysql.dll文件放入自己Debug/release文件夹
    (5)若运行时显示无法连接至数据库,可能是用户没有远程登入权限:
    解决远程数据库登入失败的问题://给root用户在IP为192.168.1.171的客户机上远程连接并操作所有数据的权限,791745为密码

    grant all privileges on *.* to 'root' @'192.168.1.171' identified by '791745' with grant option;
    #使修改生效
    grant all privileges on *.* to 'root' @'192.168.1.171' identified by '791745' with grant option;

    grant all privileges on *.* to 'root' @'192.168.1.171' identified by '791745' with grant option;
    至此,该工程已经具备了和MySQL数据库连接的前提条件。
    3 所需必备知识:
    (1)MFC框架基础控件的运用,包括编辑框、CList列表、日期、按钮、静态文本等控件
    a CList控件:
    首先设置属性为report型,不需要排列,关联value型变量m_list

    	//在列表里插入标签
    	m_list.InsertColumn(0,"创建者",LVCFMT_CENTER,50);//插入第一个标签,名为创建者,居中显示,长度为50
    	m_list.InsertColumn(1,"任务名称",LVCFMT_CENTER,80);
    	//在列表中插入数据
    	m_list.InsertItem(int nItem,LPCTSTR lpszItem );//插入第nItem行第一列的数据
    	SetItemText(int nItem,int nSubItem,LPCTSTR lpszText ); //插入第nItem行第nSubItem(>1)列的数据
    	//获取鼠标选中的行号,从0开始
    	POSITION pos = pDlg->m_list.GetFirstSelectedItemPosition();
    	int nItem = pDlg->m_list.GetNextSelectedItem(pos);//在列表里插入标签
    	m_list.InsertColumn(0,"创建者",LVCFMT_CENTER,50);//插入第一个标签,名为创建者,居中显示,长度为50
    	m_list.InsertColumn(1,"任务名称",LVCFMT_CENTER,80);
    	//在列表中插入数据
    	m_list.InsertItem(int nItem,LPCTSTR lpszItem );//插入第nItem行第一列的数据
    	SetItemText(int nItem,int nSubItem,LPCTSTR lpszText ); //插入第nItem行第nSubItem(>1)列的数据
    	//获取鼠标选中的行号,从0开始
    	POSITION pos = pDlg->m_list.GetFirstSelectedItemPosition();
    	int nItem = pDlg->m_list.GetNextSelectedItem(pos);

    b 日期控件:

    	//控件日期(CTime类)转CString字符串:首先关联该空间变量m_time,
    	CString str;
    	str.Format("%d-%d-%d",m_time.GetYear(),m_time.GetMonth(),m_time.GetDay());
    	//CString字符串转成控件日期(COleDateTime)以便初始化时显示在该控件上
    	COleDateTime temp
    	CString str;
    	temp.ParseDateTime(str,VAR_DATEVALUEONLY);//第二个参数表示只显示日期
    	m_time.SetDate(temp.GetYear(),temp.GetMonth(),temp.GetDay());

    c 需要静态文本控件响应点击的消息
    打开属性,选中样式中的"通知"项,并更改ID默认的ID号,双击建立响应函数
    d 新建的子对话框一般是没有初始化函数的,若需要的话,添加该子对话框类的window message handle函数WM_INITDIALG
    e 需要在子类中运用父类的变量和方法:

    	CClientDlg *pDlg = (CClientDlg *)theApp.m_pMainWnd;
    	pDlg->SetWindowText(str);//例如设置主对话框的标题

    f

    	//Char数组转CString对象:
    	CString str;
    	char szBuff[10];
    	str.Format( "%s ",szBuff);
    	 //CString对象转char数组:
    	char  *szBuff; 
    	CString  str = "Hello"; 
    	szBuff=str.GetBuffer(0); 
    	str.ReleaseBuffer();//别忘释放内存//Char数组转CString对象:
    	CString str;
    	char szBuff[10];
    	str.Format( "%s ",szBuff);
    	 //CString对象转char数组:
    	char  *szBuff; 
    	CString  str = "Hello"; 
    	szBuff=str.GetBuffer(0); 
    	str.ReleaseBuffer();//别忘释放内存

    g 对于控件关联变量,别忘了在代码中刷新值
    UpdateData(true);//将关联变量的值刷新在空间上
    UpdateData(false);//将值刷入关联变量

    (2)MySQL基本的查询语句

    	#SELETE:指定两个字段的条件,查找其他字段中含有特定字符串的数据,括号不能忘
    	SELECT * FROM task WHERE (TaskName LIKE '%s' OR TaskContent LIKE '%s' )AND (CreatorTime BETWEEN '%s' AND '%s') AND (Creator = '%s');
    	#UPDATE:更新特定某一行的值
    	UPDATE task  SET Creator = 'new',TaskName = 'new' WHERE Creator = 'old' AND TaskName = 'old';
    	#INSERT:插入一行新数据
    	INSERT INTO task(Creator,TaskName,TaskContent,TaskStartTime,TaskEndTime,CreatorTime) 
    	VALUE('%s','%s','%s','%s','%s','%s');
    	#若查询语句中有中文,则要进行字符编码的转换,在操作数据之前设定
    	mysql_query(&mysql_rcs,"set names 'gbk'");
    	#补充:要查询数据库的字符编码,则用命令:SHOW VARIABLES LIKE 'character%';

    (2)C++的基础知识

    		//利用vector类代替数组储存结构体,并作为返回值以及参数,因为vector的大小可以动态的改变
    		//实例解析:这是一个刷新数据的函数,即将登入用户的所有任务数据取出来
    		std::vector<task>  RefreshTask(LPCSTR szName);//函数声明
    		std::vector<task> CConnectDB::RefreshTask(LPCSTR szName)//定义一个刷新数据的函数,返回一个结构体task类型的模板
    		{
    			using namespace std;//vector包含在名称空间std中
    			MYSQL_RES *result;//定义一个MySQL语句查询的结果集,用来存放从数据库取来的数据
    			MYSQL_ROW row;//MYSQL_ROW 类型表示是结果集里的一条数据,例如数据表里有10个字段,row[0]~row[9]里面保存的就是这10个字段的内容。
    			vector<task> recvfromDB;//定义一个容器
    			result = NULL;//初始化结果集指针为NULL
    			char querystr[MAX_SQL_QUERY_LEN];//定义一个字符串用来存放查询语句
    			memset(querystr, 0, MAX_SQL_QUERY_LEN);//将该数组清零,
    			sprintf(querystr,"SELECT * FROM task WHERE Creator = '%s'",szName);//将查询语句放入数组
    			mysql_query(&mysql_rcs,"set names 'gbk'");//因为查询语句中有中文,因此要转码
    			if(!mysql_query(&mysql_rcs, querystr))//该语句返回0表示查询成功(不代表有数据返回),返回其他则查询出错
    			{
    				result = mysql_store_result(&mysql_rcs);//将查询结果集存入result
    				if(result)//对于SELECT,需要有结果返回,因此result不为null则表示有结果集返回,此时
    				{//可以通过result->row_count这个成员变量查看结果集有几条数据,而对于UPDATE,DELETE,INSERT语句不需要返回数据,因此result为空表示操作成功
    					int nCol = mysql_num_fields(result);//结果集的列
    					int  nRow = mysql_num_rows(result);//结果集的行
    					while(row = mysql_fetch_row(result))//循环将每一条(行)数据放到结构体中
    					{
    						task recv;//每次循环新建一个结构体,把数据库中一行数据存进去
    						sprintf(recv.creator,"%s",row[0]);
    						sprintf(recv.taskname,"%s",row[1]);
    						sprintf(recv.taskcontent,"%s",row[2]);
    						sprintf(recv.taskstarttime,"%s",row[3]);
    						sprintf(recv.taskendtime,"%s",row[4]);
    						sprintf(recv.taskcreattime,"%s",row[5]);
    						recvfromDB.push_back(recv);//将存好数据的结构体插入容器尾部
    					}
    					//int nSize = recvfromDB.size();计算容器的容量,nSize个结构体
    				}
    			}
    			return recvfromDB;//返回该容器
    		}
    		//下面调用这个函数
    		void CServeC::OnRefresh()
    		{
    			std::vector<task> Recv; //定义一个模板
    			Recv = cnt.RefreshTask(recv.user);//根据用户发来的信息查询,返回一个模板到Recv
    			std::vector<task>::iterator pd = Recv.begin();//获取容器中第一个数据的指针,iterator为迭代器名(广义上的指针)
    			int nSize = Recv.size();//获取容器大小
    			this->Send(&nSize,sizeof(nSize));//向客户端发送检索到的数据条数
    			for(pd;pd != Recv.end();pd++)//遍历发送至客户端,这是通过结构体传送,不能直接传递vector
    			{
    				this->Send(pd,sizeof(*pd));
    			}
    		}
    		
    		//使用全局变量的时候,为了防止互相包含头文件导致的重复定义,在工程中应该
    		//在StdAfx.cpp中定义,在其他要使用的文件中声明 
    		//例如:Bool nFlags  在StdAfx.cpp
    		//	  extern nFlags  在$.cpp
    					 
    		//对于函数的默认参数的使用
    		//函数原型:对于多个默认值的函数,应该从右向左定义
    		void OnReceive(LPCSTR szName = NULL,int nFlags );//错,应从右开始定义,必须调换一下参数的顺序
    		void OnReceive(LPCSTR szName = NULL,int nFlags = 7);//否则只能给另一个参数定义默认参数
    		void OnReceive(LPCSTR szName ,int nFlags = 7,float fTest = 3.0);//正确
    		//定义时不需要加默认参数值
    		void OnReceive(LPCSTR szName ,int nFlags,float fTest);//正确
    				
    		//有一些函数和变量需要共享,以便在任何地方都能轻松调用
    		//可以将需要共享的函数和参数定义成app类的公有成员函数或参数
    		//然后在需要调用的地方通过theApp这个全局变量调用
    		//例:
    			#include "SocketC.h""
    			class CClientApp: public CWinApp
    			{
    			public:
    				CClientApp();//类构造函数
    				CSocketC m_sock;//需要共享的参数和函数
    				void OnRefresh();
    				……
    			}
    		//在需要使用的文件中
    			extern CClientApp theApp;
    			theApp.m_sock.Recvive();
    			theApp.OnRefresh();	//有一些函数和变量需要共享,以便在任何地方都能轻松调用
    		//可以将需要共享的函数和参数定义成app类的公有成员函数或参数
    		//然后在需要调用的地方通过theApp这个全局变量调用
    		//例:
    			#include "SocketC.h""
    			class CClientApp: public CWinApp
    			{
    			public:
    				CClientApp();//类构造函数
    				CSocketC m_sock;//需要共享的参数和函数
    				void OnRefresh();
    				……
    			}
    		//在需要使用的文件中
    			extern CClientApp theApp;
    			theApp.m_sock.Recvive();
    			theApp.OnRefresh();


     

    展开全文
  • 1.Eclipse 开发工具的价格是 A A.免费 B.5美元 C.50美元 D.500美元 2.可以运行Eclipse的平台包括 ABC A.Windows7 B.Windows XP C.Red Hat Linux D.Fedora B 下面网址中哪个是Eclipse的官方网址 A A. B. C. ht
  • 1.Java 语言提供了几种添加注释的方法 C A.1 B.2 C.3 D.4 2.如果需要生成文档注释需要使用下列哪种注释标记 C A. // B./* */ C./* */ D.以上都不正确 1.在Java语言中为long型变量赋值时如果这个值超出了int型的取值...
  • C/C++完全零基础入门到精通项目实战全套完整版培训课程视频教程下载。零基础-开发阶段掌握-项目开发熟练-完整体系培训。本课程带你学精、学深、学透C/C++全栈开发。C生万物,编程之本,长远IT职业发展的选择!
  • 0基础学习+知识点 +实战项目演练 视频精简,思路清晰,不做无用功,让所学每一个技术点都能真真切切落实到项目中,学即所用。 1、独创框架学习法,先掌握整体的 QT 开发,在逐一击破! 2、手把手教学,从 Windows...

    B站搜‘北京迅为’, 入门视频教程免费学习,持续更新。

    https://space.bilibili.com/33785640

     

    0基础学习+知识点 +实战项目演练

    视频精简,思路清晰,不做无用功,让所学每一个技术点都能真真切切落实到项目中,学即所用。

    1、独创框架学习法,先掌握整体的 QT 开发,在逐一击破!

    2、手把手教学,从 Windows 到 Linux 在到 QT ,从 C ++直到 QT 系统移植,带你打通 QT 的任督二脉

    3、从 Windows 上位机开发,到 linux 界面开发,再到手初产 APP 开发,让你领略 QT 跨平台的魅力。

     

    Linux学习方法-框架学习法:https://www.bilibili.com/video/BV1HE411w7by

    P1第一讲 事半功倍之框架学习法

    P2第三讲 事半功倍之Linux系统框架

    P3第四讲 事半功倍之Linux应用程序编程框架

    P4第四讲 事半功倍之Linux驱动架构的演进

     

    嵌入式学习之Linux入门篇:https://www.bilibili.com/video/BV1M7411m7wT

    P1i.MX6ULL终结者开发板开箱初体验

    P2I.MX6ULL终结者资料介绍

    P3安装虚拟机VMware软件

    P4获取并安装Ubuntu操作系统

    P5Ubuntu系统介绍

    P6Ubuntu启用root用户

    P7Ubuntu使用apt-get下载

    P8vim编辑器的使用

    P9Linux常用命令第一部分

    P10Linux相对路径和绝对路径

    P11Linux家目录和根目录概念

    P12Linux常用命令第二部分

    P13Linux帮助手册讲解

    P14Linux权限管理

    P15Linux连接档概念

    P16Linux目录结构讲解

    P17Linux文件系统概念

    P18Linux第一个程序HelloWorld

    P19Linux环境变量讲解

    P20Linux编写第一个自己的命令

    P21Linux工具之make工具和makefile文件

    P22makefile基本语法(上)

    P23makefile基本语法(下)

    P24VMwareTools工具安装和使用

    P25SSH软件安装和使用

    P26samba安装和使用

    P27Source Insight的安装和使用

    P28超级终端安装和使用

    P29交叉编译器安装和使用

    P30开发板固件烧录

    P31借助U盘或者TF卡拷贝到程序到开发板

    P32nfs服务器的搭建和使用

    P33点亮第一个led灯

     

    嵌入式学习之Linux裸机篇:https://www.bilibili.com/video/BV1RC4y1H7TC

    P1ARM体系结构简介

    P2I.MX6ULL芯片介绍

    P3初识GPIO以及GPIO操作流程

    P4使用汇编按照GPIO操作流程点亮LED灯

    P5掌握裸机程序的编译烧写以及测试流程

    P6使用C语言按照GPIO操作流程点亮LED灯

    P7掌握C程序的编译烧写以及测试流程

    P8了解NXP提供的资料并使用官方SDK

    P9在官方SDK的基础上构建一个通用裸机工程

    P10用蜂鸣器学习GPIO输出功能

     

    嵌入式学习之QT进阶篇:https://www.bilibili.com/video/BV1tp4y1i7EJ

    P1本期QT视频将会收获哪些知识?

    P2在Windows上搭建QT开发环境

    P3C++基础(上)

    P4C++基础(下)

    P5制作一个最简单的QT界面

    P6QT信号和槽

    P7仿写一个智能家居界面(上)

    P8仿写一个智能家居界面(中)

    P9仿写一个智能家居界面(下)

    P10QT上位机开发之串口助手(上)

    P11QT上位机开发之串口助手(下)

    P12把QT程序打包成Windows软件

    P13QT网络编程之TCP通信

    P14QT网络编程之UDP通信

    P15QT时间编程之QT时钟

    P16QT系统移植之构建根文件系统

    P17QT系统移植之交叉编译QT源码和触摸源码

    P18QT系统移植之在开发板上部署QT运行环境

    P19QT跨平台运行之把QT程序交叉编译到ARM开发板

    P20QT跨平台运行之使用QT控制蜂鸣器

    P21QT跨平台运行之把QT程序编译成手机APP

     

    更多资料关注迅为VX公众号:迅为电子,回复 :终结者,免费获取产品资料

     i.MX6ULL终结者手册下载链接 
    https://pan.baidu.com/s/171NHz6_sVMGIQ3g7GcCqOQ   提取码:n3og 

    展开全文
  • 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步。 2.1.创建第一个Django项目 我们创建一个我们存放Django的工作目录,示例:...

    2.第一个Django项目

    上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步。

    2.1.创建第一个Django项目

    我们创建一个我们存放Django的工作目录,示例:C:\My Files\Python Projects 在命令提示符窗口进入到刚才创建的目录,运行运行命令:

    django-admin.py startproject mysite

    这样会在你的当前目录下创建一个目录mysite。

    注意:确保在Windows PATH 环境变量中增加了django-admin.py文件路径:C:\Python27\Scripts,如没有增加路径可以通过运行如下命令:

    path %path%; C:\Python27\Scripts

     

    startproject 命令创建一个目录,包含内容如下:

    mysite/
    
    manage.py   
    
    mysite/
    
          __init__.py
    
          wsgi.py
    
          settings.py
    
          urls.py

    目录及文件说明如下:

    • manage.py      :一种命令行工具,允许你以多种方式与该 Django 项目进行交互。 键入python manage.py      help,查看帮助。

     

    mysite/ 下文件:

     

    • __init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般不需要修改它。
    • settings.py :该文件是 Django 项目的设置或配置文件。
    • urls.py:Django项目的URL配置文件,其为你的django网站的目录。
    • wsgi.py:Django项目的wsgi配置,Web服务器网关接口文件(Python Web Server Gateway Interface,缩写为WSGI)。

     

    2.2.运行开发服务器

    django开发服务是可用在开发期间的,一个内建的,轻量的web服务。在准备发布产品之前,无需进行产品级 Web 服务器(比如 Apache)的配置工作。 开发服务器监测你的代码并自动加载它,修改代码时无需重启动服务,就可以查看修改结果。

    切换到项目目录 (cd mysite ),运行下面的命令:

    python manage.py runserver

     

    这将会在端口8000启动一个本地服务器, 并且只能从你的这台电脑连接和访问。 既然服务器已经运行起来了,现在用网页浏览器访问 http://127.0.0.1:8000/ 。 我们可以看到一个淡蓝色Django欢迎页面。

    它开始工作了,如下图:

     

     

    2.3.Hello World页面

    我们的第一个目标,是创建一个网页,用来输出这个著名的示例信息:Hello world.

    如果你曾经发布过Hello world页面,但是没有使用网页框架,只是简单的在hello.html文本文件中输入Hello World,然后上传到一个网页服务器上,如:http:// 127.0.0.1/helloWorld.html

    注意,这里有两个关键的信息: ①一个包括字符串 "Hello world"的页面;②页面的URL( http://127.0.0.1/helloWorld.html)。

    使用Django在做网页会比较不一样,我们会用不同的方法来完成这两个关键信息。①页面的内容是靠view function(视图函数)来实现;②URL定义在urls.py文件的 URLconf配置信息里。

    首先,我们先写一个关于Hello World视图函数。

    第一份视图:

    在上一章我们使用django-admin.py startproject创建的mysite文件夹中,我们手工创建一个叫做views.py的空文件。这个文件将包含这一章的视图定义信息。 view.py文件名为Django约定俗成,便于理解和阅读代码。

    我们的Hello world视图非常简单。 是一个完整的函数和导入声明,你需要输入到views.py文件的内容如下:

    from django.http import   HttpResponse
    
     
    
    def helloworld(request):
    
        return HttpResponse("Hello   world")

    说明:Django一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest;它返回一个HttpResponse实例。下面我们将使我们的第一个一个Python的函数成为一个Django可识别的视图。

    2.3.1.你的第一个URLconf

    我们把URLconf配置信息理解为Django网站的目录。 它的本质上是定义 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。通过这个映射表Django就可以知道,对于某个特定的URL访问,需要执行那个具体的视图函数代码。 例如,当用户访问/ helloworld /时,调用视图函数helloworld (),这个视图函数存在于Python模块文件view.py中。

    前一章中执行 django-admin.py startproject 时,自动为创建了一份 URLconf(即 urls.py 文件)。 默认的urls.py会像下面这个样子:

    from django.conf.urls import patterns, include, url
    
     
    
    # Uncomment the next two lines to enable the admin:
    
    # from django.contrib import admin
    
    # admin.autodiscover()
    
     
    
    urlpatterns = patterns('',
    
        # Examples:
    
        # url(r'^$',   'mysite.views.home', name='home'),
    
        #   url(r'^mysite/', include('mysite.foo.urls')),
    
     
    
        # Uncomment the   admin/doc line below to enable admin documentation:
    
        #   url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    
     
    
        # Uncomment the   next line to enable the admin:
    
        #   url(r'^admin/', include(admin.site.urls)),
    
    )


    我们想在URLconf中加入URL和view,只需增加映射URL模式和view功能的Python tuple即可。下面演示如何添加view中helloworld功能:

    from django.conf.urls import patterns, include, url
    
    from mysite.views import helloworld
    
     
    
    # Uncomment the next two lines to enable the admin:
    
    # from django.contrib import admin
    
    # admin.autodiscover()
    
     
    
    urlpatterns = patterns('',
    
        # Examples:
    
        # url(r'^$',   'mysite.views.home', name='home'),
    
        #   url(r'^mysite/', include('mysite.foo.urls')),
    
     
    
        # Uncomment the   admin/doc line below to enable admin documentation:
    
        # url(r'^admin/doc/',   include('django.contrib.admindocs.urls')),
    
     
    
        # Uncomment the   next line to enable the admin:
    
        #   url(r'^admin/', include(admin.site.urls)),
    
     
    
        ('^helloworld/$', helloworld),
    
    )

    保存文件,如果没有启动Django开发服务器来测试修改好的 URLconf,运行命令行 python manage.py runserver 。

    如果刚才它一直运行,不需要手工重启、开发服务器会自动监测代码改动并自动重新装载新加信息。直接刷新刚才的网页http://127.0.0.1:8000/就可以看到下图:

     

    如上图,网站已经看到我们映射的网页目录。

    打开你的浏览器访问 http://127.0.0.1:8000/helloworld/ 。 你就可以看到输出结果了。 开发服务器将自动检测Python代码的更改情况来做必要的重新加载。打开浏览器直接输入“http://127.0.0.1:8000/ helloworld/”,我们将看到我们创建的第一个Django视图输出的Hello world。

     

    现在我们已经成功创建了第一个Django的web页面。

    2.4.小结

    Django网站与原来常规的网站页面会比较大的差别,传统网站的静态页面文件,在Django框架里都变成了一个一个对应的视图函数,需要我们注意。下一章节会介绍到Django如何通过动态拼接html页面代码来实现网站页面的。本文主要为初学者提供Django入门和一些具体实践例子内容。关于更多的Django运行和装载原理,请参考《The Django Book》网站。

    转载于:https://www.cnblogs.com/haozi0804/p/4481020.html

    展开全文
  • android 安卓 史上最强NDK入门项目实战 c c++ 开发android 游戏 必知必会
  • QT5.5入门项目实战

    2018-11-22 09:53:19
    1.01-1-Qt讲解及Qt开发工具(编辑环境)讲解 2.01-2-登录界面布局讲解 3.01-3-登录界面功能介绍讲解: H# E. \' |0 {5 T 4.01-4-手动编写登录界面实现讲解: t# m, S# u7 e" t K. ? 5.01-5-手动编译qt源代码过程讲解 `...
  • 采用了MVC的框架模式,即模型M,视图V和控制器C。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你...

    一、前言

    Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。

    二、开发环境

    1. Python3.7.4
    2. Django2.0

    Django安装

    安装最新版的Django版本

    #安装最新版本的Django
    pip install  django 
    #或者指定安装版本
    pip install -v django==2.0
    

    查看Django是否已经成功安装:

    #查看Django版本
    python -m django --version
    

    三、开发步骤详解

    1、项目创建

    首先,进入命令提示符,通过cd切换到自己的工作目录,我的是H:\pyCode,或者在H:\pyCode目录下按住Shift+鼠标右键进入命令提示符,直接是在当前目录。

    创建一个名为myweb的Django项目,执行如下命令:

    django-admin startproject myweb
    

    这个命令的意思是创建一个名为“myweb”的django项目。

    在目录下多出一个myweb文件夹,表示项目创建成功:

    1

    文件结构如下:

    2

    2、启动Django服务

    进入到myweb目录,执行如下命令:

    python manage.py runserver
    

    3

    现在,web服务器已经成功启动,打开浏览器,在地址栏中输入:http://127.0.0.1:8000/
    “127.0.0.1”是指本地主机,8000是默认的服务端口,可修改。也可以在地址栏输入localhost:8000访问项目。

    4

    恭喜你,项目初步创建完成~
    现在,我们来进行下一步操作。。。

    3、创建Django APP

    在Django中的app相当于一个功能模块, 与其他的web框架可能有很大的区别, 将不同功能放在不同的app中, 方便代码的复用。

    我们建立一个叫“myapp”的应用,保持命令提示符在myweb目录下(有mange.py文件的myweb目录)。注:Ctrl+C可以退出服务器
    执行如下命令:

    python manage.py startapp myapp  
    

    回车后myweb文件夹中多了一个myapp文件夹,这个就是我们刚创建的APP:

    5

    myapp中也为我们创建了相关的应用文件,现在整个项目结构如下:

    6

    增加样式

    1、在myapp目录下创建一个 templates 文件夹,并在该文件夹中创建一个index.html文件,用于展示的网页内容。

    模板文件夹templates,不明白的地方自己百度或者Google,加油,相信自己wowo ,多主动寻找答案~~

    index.html文件内容如下:

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title>Hello,Django!</title>  
    </head>  
    <body>  
        <h1>Hello,My First Django!</h1>   
    </body>  
    </html>  
    

    2、在myweb/myweb/settings.py下添加新建app,找到INSTALLED_APP,在其中添加’myapp,’, 然后保存:

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    
        'myapp',  
    ]
    

    3、打开myapp文件夹下面的views.py文件,在文件中输入:

    from django.shortcuts import render
    
    # Create your views here.
    
    # 添加index函数,用于返回index.html页面
    def index(request):  
        return render(request, 'index.html')  
    

    4、打开myweb文件夹下面的urls.py文件,在文件中输入:

    from django.contrib import admin
    from django.urls import path
    from myapp import views # 导入views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', views.index),   # 添加views.index
    ]
    

    5、完成以上步骤,执行“python manage.py runserver”启动Django中的服务器,在浏览器中打开127.0.0.1:8000

    访问127.0.0.1:8000后可能发现我们的结果不一样,那是因为上面给你们的index.html文件没有加样式,样式太长了,我就不贴出来了,作为Demo输出“Hello”就好,网上也有很多模板的噢~

    展开全文
  • 想当年我学习C/C++也是从一个计算器入门而后一往无前的。小程序的第一个应用,我也选择了开发计算器,入门神器嘛。首先,它的界面相对简单,适合入门;其次,无人不知,无人不用,对功能需求最为了解。别看一个小小...
  • c表示controller,是核心,用于处理请求、获取数据、返回结果 MVT Django是一款python的web开发框架 与MVC有所不同,属于MVT框架 m表示model,负责与数据库交互 v表示view,是核心,负责接收请求、
  • 安卓 Native+Flutter 应用开发实战及踩坑记录,练手入门项目:FluLearn 入门资料 第三方共享包检索(国内)、第三方共享包检索(国外) Flutter开发环境搭建(中文版)、Flutter开发环境搭建(英文版) Flutter官方...
  • 这门课程主要突出“实用”的C语言,即我们重点详细讲解真实项目开发和运用中实际运用的C语言知识,及容易犯错的地方,包括对一个C程序怎么去调试的技术。这有别于大学里直接去讲诉C语言的内容,也有别于全国计算机...
  • python实战开发项目模板是一套非常简单好用的Python计算机编程语言实战基础,它针对那些学弱们进行强化训练,让渣渣们可以通过手把手的代码敲打来进行快速入门巩固,欢迎有需要的同学下载使用。 1、主要是开发快,...
  • 首先是寻找3d资源花费了大半天时间,开发3d游戏不易呀!最终还是向KUOKUO大佬那捞了一只鸡(鸭?)来用了。 由于是第一次写3d项目,摄像机镜头调了多次才达到预想的效果。 还用了一个天空盒,网上找的资源。 实现原理...
  • 最新Python开发项目实战(完整)

    千次阅读 2019-05-02 17:02:28
    01.1.零基础入门学习Python 01.4.python教程 01.5.python学习手册视频教程 ... 02.1.python视频教程(基础篇、进阶篇、项目篇) 02.3.Python搜索爬虫抓取超高清视频教程 02.6.利用Python SO C KET...
  • 新媒体管家 ... 关键时刻,第一时间送达! ...以前也讲过NDK开发,但是开始是抱着好玩的感觉去开始的,然后呢会...NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西;另外就是为了效率更加高效些但是在Java与
  • 课程目录 微信公众号 微信公众号基本开发和聊天1.mp... l5 Y' `5 a 微信公众号基本开发和聊天2.mp4" Q% C0 J- v6 F$ X4 R3 y6 M3 M 微信公众号基本开发和聊天3.mp4 微信公众号菜单开发1.mp4; m, _) l8 Z8 X1 VX# ] ...
  • 这本书的名字里包含“实战”这个词我非常喜欢,我比较喜欢从实战中学习。这本书整本书围绕着“FlashLight”这个app从项目启动到最后上架销售的整个流程来编写。这本书虽然囊括了这个app产品开发流程由于页数有限,...
  • ###序 前一段时间有很多朋友来问我各种问题,比如java...最近琢磨着要写点东西,把基本的Java Web开发流程完整地走一遍,最后决定,干脆就写一个小小的项目实战吧。这个小项目作为一个JavaWeb的入门例子,从前台页面.
  • LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑...
  • 区块链入门实战

    2020-04-26 22:32:36
    【区块链简介(摘自区块链开发实战书籍)】https://www.cnblogs.com/kxm87/p/10025025.html 【区块链】以太坊区块链技术:https://cloud.tencent.com/developer/article/1406763【包含以太坊的相关网站和开发项目...
  • NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西;另外就是为了效率更加高效些但是在java与C相互调用时平白又增大了开销(其实效率不见得有所提高),然后呢,基于安全性的考虑也是为了防止代码被反编译...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 288
精华内容 115
关键字:

c项目开发实战入门