• Django框架


    一、初识django:

          django是一门开放源代码的,由Python编译而成的一款web框架,它的模式是MTV(models templates views),使用框架的好处在于,里面有好多集成好的东西,我们可以直接拿过来使用。下面我们直接看如何创建以及使用django:

           1、需要先安装django模块,pip3 install django

           2、接下来就是创建一个django项目,可以直接在pycharm中选择'file-->new progect'中选择创建django项目,也可以使用命令去创建:django-admin.py startproject mysite,这样就会创建一个叫mysite的django项目。

           3、创建APP:

                      cd mysite ==》 python3 manage.py startapp cmdb

           4、连接数据库
                   在连接数据库之前需要先注册APP,注册app是在settings文件中配置上APP的名称就可以。
                   执行命令需要创建数据库:
                         python3 manage.py makemigrations
                         python3 manage.py migrate

           5、几个重要的文件:

                   settings: 配置文件

                   urls: 路由系统

                   manage.py     #django程序启动文件

                   models: 创建数据库表的文件

                   views: 处理用户请求的问题

    二、使用一个小例子,来说明django:

              在你创建的mysite项目下面会有一个templates目录,它下面主要放置的是接收用户输入的HTML文件,下面通过几步来阐明一下如果使用django来完成一个简单的操作:

              1、首先让我们先在models里面写类生成表:

    from django.db import models
    #这里创建的类就是表名,其实UserInfo就是Model的子类,里面的对象就是字段

    #字段的类型是string类型,最大的长度是32
    class
    UserInfo(models.Model): user = models.CharField(max_length=32) passwd = models.CharField(max_length=32)

              2、其次在templates目录下创建一个index.html文件,文件内容如下:   

     1  <div>
     2         <p>用户名:<input type="text" id="username"/></p>
     3     </div>
     4     <div>
     5         <p>密码:<input type="password" id="pwd"/></p>
     6     </div>
     7     <input type="button" id='login' value="login" onclick="SubmitLogin();"/>
     8 
     9     <script src="/fff/jquery-1.8.2.min.js"></script>
    10     <script>
    11         function SubmitLogin(){
    12             $.ajax({
    13                 url: '/web/ajax/',
    14                 type: 'POST',
    15                 data: {'user': $('#username').val(),'pwd': $('#pwd').val(),'val':$('#login').val()},
    16                 dataType: 'json',
    17                 success: function(data){
    18                     if(data.status){
    19                         location.href='/web/userinfo/';
    20                     }else{
    21                         alert(data.message);
    22                     }
    23                 }
    24             })
    25         }
    26     </script>

                   需要注意的是:我这里直接使用的ajax来进行发送请求,其实还有一种方式就是我在input标签中创建一个name属性,然后在views文件中去调用这个name属性的值,那么还是使用ajax比较简洁易懂,里面的内容先不看,ajax就是把用户名和密码通过字典的方式传送过去,那么views中的配置为:

     1 def ajax(request):
     2     if request.method == 'POST':
     3         ret = {'status':False,'message':''}
     4         u = request.POST.get('user',None)
     5         p = request.POST.get('pwd',None)
     6         value = request.POST.get('val',None)
     7         user_count = models.UserInfo.objects.filter(user=u).count()
     8         pan = models.UserInfo.objects.filter(user=u,passwd=p).count()
     9 
    10         if user_count <= 0:
    11             if value == 'login':
    12                 ret['message'] = '用户不存在'
    13                 return HttpResponse(json.dumps(ret))
    14 
    15     return render(request,'ajax_demo.html')

                  在这里我只是简单的判断用户名是否存在,如果不存在,就ret字符串传送到前端页面,前端页面中success的部分就是处理来自views端传过来的数据。

             3、还有一个重要的部分需要我们来进行操作,就是路由系统,来看下我的配置:

           

    urlpatterns = [
        url(r'^ajax/', views.ajax),
    ]

             4、启动django

                    屏幕输出中会有让我们访问的地址,基本上都是http://127.0.0.1:8000/,如果我们直接这样访问的话,肯定是出不来的,因为我们没有按照我们路由系统里面的设置去访问,所以我们需要在最后加上ajax 的url才可以访问正常。

  • 相关阅读:
    编辑器 --- Visual Studio Code 英文界面转换成中文(简体)
    CSS3 -- column 实现瀑布流布局
    CSS3 -- 边框圆角
    CSS3 -- 弹性盒
    自适应布局要素
    Vue -- 基础知识
    Vue -- element-ui el-table 的合计在第一行显示并可点击
    如何在网页标题栏title加入logo(icon)图标?
    linux下暴力破解工具hydra【转】
    linux 服务简介
  • 原文地址:https://www.cnblogs.com/madq-py/p/5859096.html
Copyright © 2020-2023  润新知