重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在经历了使用Java作为后台不断的遇到各种离奇的小错误之后,我选择了python作为我的后台来开发我大学中的最后一个网页项目。我对Django的感觉就是简单,大大简化了开发的时间,最主要的是基于python这种脚本语言,省去了编译时会遇到的各种小错误。下面开始开发记录。
创新互联建站 - 成都温江机房,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,成都温江机房,西南服务器托管,四川/成都大带宽,机柜大带宽租用·托管,四川老牌IDC服务商首先选择环境,在这里,我选择了虚拟机里安装ubuntu14.04作为后台,为此虚拟机分配了3GB内存(大一点,要不然卡),两块网卡,一块为了使其联网,一块为了与本地进行连接(怕网线突然掉了),IP随便配,只要能正常通信即可。
python版本:2.7.6
Django版本:1.11.8
参考教程:https://code.ziqiangxuetang.com/django/django-tutorial.html
安装软件过程省略,下面正式开始项目:
第一步,切换到工作目录,以后的项目都放在这个目录中
root@ubuntu:~# cd python/django/
第二部,使用命令开启新项目
root@ubuntu:~/python/django# django-admin startproject codeManageAndShare
在使用了这个命令之后,就会在当前的目录下生成一个名字为“codeManageAndShare”的目录,这个就相当于开启了一个工程,然后这个工程里的每个项目叫做app。进入这个目录可以看到生成了很多的目录和文件,其中,有一个和工程名相同的目录,在这个目录中有很多的python脚本文件,其中使用最多的是settings.py和urls.py这两个文件,它们的功能分别是设置和URL导流,例如当需要设置哪些主机可以访问时要在settings.py中进行设置,当访问到来时,展示哪些东西,要在urls.py中进行设置。
第三部,使用命令开启新app
在建立了工程之后,要想实现具体的功能,就需要建立项目,建立项目需要使用当前工程目录下的“manage.py”脚本:
root@ubuntu:~/python/django/codeManageAndShare# python manage.py startapp app_selfPart
这样就建立好了一个app(项目),根据名字可以看出,这个项目的功能是建立一个个人模块,当使用了命令之后,会在当前目录下生成一个名为“app_selfPart”的新目录,在这个目录中也会生成很多的脚本文件,其中使用最多的是“models.py”和“views.py”这两个脚本文件,功能分别是建立数据库和建立视图。
一些命令:
运行服务端(端口随意指定,IP这样写是为了让所有IP均可访问,如果不带IP默认只有本地可以访问,还需要在codeManageAndShare目录中的setting.py中更改AllowHost(将参数改成“"*"”(有引号)即可)):
root@ubuntu:~/python/django/codeManageAndShare# python manage.py runserver 0.0.0.0:8000
同步数据库(下面两条命令挨个执行一遍即可)
提交更改,生成更改文件:
root@ubuntu:~/python/django/codeManageAndShare# python manage.py makemigrations
将更改同步到数据库中:
root@ubuntu:~/python/django/codeManageAndShare# python manage.py migrate
个人的理解:
当服务端运行起来之后,即可在真实机上打开浏览器通过IP和端口号进行访问,访问的过程是通过浏览器发起访问请求,然后请求到达服务器监听的8000端口,然后“codeManageAndShare”中的“urls.py”根据“setting.py”开始起作用,根据“urls.py”中配置的类似于正则表达式的东西对请求的URL进行匹配,然后将请求送到匹配成功的app中的“views.py”中进行处理,在“views.py”中事先写好了一些函数,这些函数规定了对数据进行的处理,函数的参数就是请求的“request”,当处理完成之后,会有一个“return”语句来返回处理的结果,这个处理的结果,目前所知:
1.渲染一个“templates”目录中的模板(return render(request,'selfPart.html'))(这个目录要自己在当前的app下建立,但是寻找的时候会自动的去这个目录中找),而渲染的过程可以使用函数将从数据库中取出的参数传进去(渲染时在模板中使用变量的方法是“{{var}}”)最后将渲染的结果通过return返回给请求;
2.直接返回文字信息(return JsonResponse("一些文字",safe=False)),这个返回的文字直接可以在浏览器中看到;
3.直接进行重定向(return HttpResponseRedirect('/selfPart')),当访问此URL时进行处理,之后重定向到新的URL。
对于数据库,上面提到了,使用每个app中的“models.py”脚本,在这个脚本中的内容大致如下图所示:
在上面这张图中可以看到和一般的数据库sql语言大不相同,我的理解是,Django对我们所熟知的sql语言进行了封装,将其转化为了这种类的方式,在这里使用变量的方式定义数据格式,然后就可以在其他脚本或命令行中使用命令来进行对数据库的处理,例如查找数据就可以直接使用“get”,Django在接收到这些命令之后,自动的将其转化为“select * from。。。”这样的sql语句传到数据库中执行。过滤就可以直接使用“filter”。使用这些函数之后的数据还是对象,在接下来的处理中更方便,这大大方便了我们的使用和开发。
还有一个十分有用的功能就是用户的认证,当我们需要开发登录模块的时候,很大的时间要开发认证的部分,例如,一个私人的界面,不可以让一个没有登录的人访问,或者两个已经登录的人所看到的个人页面应该分别是他们自己的个人页面,类似这种的功能,Django已经替我们做好了,我们只需要在需要进行认证的app中的views.py脚本中添加修饰器即可,具体的后边会提到。
以上,都是我根据观察之后瞎编的!!!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。