• python中Django 使用方法简述


      Django是由Python写成的免费而且开源的Web应用框架--一堆零件的组成,可以帮助我们轻松的开发网站。这些零件都包括常用的:登录(注册,登入,登出),网站后台管理,表单,文件上传等。可以帮助我们避免重复造轮子。

      下图是简单的Django框架图

      整个project是由 python manage.py startproject xxxx 产生,app01是由 python manage.py startapp xxxx 生成,在pycharm中很方便的帮我们实现了以上的结构。

      整个project的设置在setting中,包含了对template,static目录的设置,中间件的设置,运行environ的设置,app的注册。

      url(uniform resource locate)中包含了整个project的所有可请求的地址,每个url都会对应view中的一个函数或者一个类。在url中由三种对应方式:

    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^index/', views.index),#最常用的方式
        url(r'^index/(?Pd+)$,views.index),#在地址中传了一个参数,index函数中需要另外一个参数来接收
        url(r'^index/(?P<nid>d+)$ ,views.index),#在地址中传了一个键值对,nid=d,在index函数中需要两个形参来接收  
        ]

      但是在工程应用中,urls都在项目的根目录下,如果是多个开发者协同,极有可能会导致url重复的风险,所以一般情况下是采用include方式,然后在每个app内部自行创建一个新的urls.py,这样可顺利解决此问题。

    from django.conf.urls import include, url
    
    urlpatterns = [
        # app01
        url(r'^user/', include('app01.urls')),
    ]

      model中包含了整个project的数据库信息,通过类创建,并且在terminal中输入 python manage.py makemigrations    python manage.py mmigrate 进行创建,每一次的数据库操作都会在migrations中保存相应信息。

      以下示例则建立了一个4列的数据库,如果不设定primary_key,那么则会自动新增一列自增且unique的id列

    #数据库的创建
    class USER(models.Model):
        uid = models.AutoField(primary_key=True)#AutoField表示自增列,默认为Interger,还有一个是BigAutoField,这个是最大限值为9223372036854775807,基本上使用Auto Field即可
        user = models.CharField(max_length=32,null=True)
        password = models.CharField(max_length=32,null=True)
        email = models.EmailField(null=True)#

      重点是view中的后端的处理,它可以是连接数据库(model)与前端(template)的平台。通过render()对网页进行渲染,从而返回给用户相对应的页面。在返回时一共有三种方式:HttpResponse,render,redirect

      数据库的增删改查

    #
    models.USER.object.creat({'uid':1,'user':'jiang','password':'123','email':'jiang@123.com'})
    #
    model.USER.object.filter().delete
    #
    model.USER.object.filter().update
    #
    model.USER.object.filter().first()
    model.USER.object.all()
    model.USER.object.all().value('user','password')#只获取user和password的数据

      static则是包含了所有的静态文件,包括需要在前端进行处理的CSS,JS文件都可保存在这里,然后在html中进行import即可。

      db.sqlite3是Django默认的数据库类型,可以使用Navicat Premium打开,网上很多破解教程,这里便不赘述。当然也可以采用MySQL,只需要在setting中设置,

    DATABASES = { 
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'test',    ## 数据库名称
            'USER': 'root',
            'PASSWORD': 'password',    ## 安装 mysql 数据库时,输入的 root 用户的密码
            'HOST': '127.0.0.1',
        }   
    }

      template 模板的用法

      1 变量(Var):在使用时用双括号括起来,从views中需要 render(request,'name.html',{'first_name‘:first_name,'last_name':last_name) 就能在模板中使用

    My first name is {{ first_name }}. My last name is {{ last_name }}

      2 标签(Tag):用于模板中逻辑语言的实现,使用{%   %}实现,比如经常会使用到的{%  csrf_token %},以及for循环标签:

    {% if user.is_authenticated %}
      Hello, {{ user.username }}.
    {% endif %}

      3 过滤器(Filter):用于辅助性工作,获取长度(length),格式化事件(date)

    {{ string|length }}
    {{ datetime|date:"Y-m-d h:i:s" }}    {# 对应格式是 年-月-日 时:分:秒 #}

    以上便是对Django基本用法的总结,还会持续更新。

          

        

  • 相关阅读:
    查看Ubuntu操作系统位数 Anny
    no such file to load zlib when using gem install Anny
    Error: shasum check failed for /tmp/npm1316662414557/13166624159930.13772299513220787/tmp.tgz Anny
    Future接口的应用
    ScheduledThreadPool
    弄了个群
    阻塞与中断
    获得CPU个数
    文件路径问题
    一个日志服务器的框架
  • 原文地址:https://www.cnblogs.com/BigJ/p/7551261.html
Copyright © 2020-2023  润新知