2018-07-26 Django入门教程

    今天主要学习了Django框架的使用。

    使用django-admin创建项目,如django-admin  startproject HelloWorld,创建完项目之后,可以使用python manage.py runserver 0.0.0.0:8000启动服务,这时,通过浏览器,输入网址,127.0.0.1:8000就可以打开创建的网页了。修改网页需要创建view.py,并在urls.py里面将view.py的视图函数绑定路由。url函数接受四个参数。两个必选参数regex、view和两个可选参数:kwargs、name。regex,正则表达式,与之匹配的url会执行对应的第二个参数view;view,用于执行与正则表达式匹配的url请求;kwargs,视图使用的字典类型的参数;name,用来反向获取url。

    使用html作为模板文件。需要先修改settings.py里面的TEMPLATES的'DIRS'字段的值,修改值为存放html文件的templates文件夹的路径。向模板提交数据可以使用render函数。

        from django.shortcuts import render

        render(request, 'xx.html', {字典数据})

    Django模板标签。

        if/else标签。

            {% if condition %}

                ...display

            {% endif %}

        支持嵌套。接受and,or或not关键字对多个变量做判断,或取反。

        for标签。{% for %}允许我们在一个序列上迭代,与python的for语句的情形类似,循环语法是for X in Y,Y是要迭代的序列而X是在每一个特定的循环中使用的变量名称。每一次循环中,模板系统会渲染在{% for %}和{% endfor %}之间的所有内容。给标签增加一个reversed,可以使列表反向迭代,可嵌套使用标签。

        ifequal/ifnotequal标签。比较两个值,判断是否相等/不等,符合条件时,显示在{% ifequal %}和{% endifequal %}中的所有值。和if标签一样,支持可选的else标签。

        过滤器。模板过滤器可以在变量被显示前修改它,使用管道字符,如{{ name|lower }},name变量被lower处理后,大写转小写。过滤管道可被套接,一个过滤器管道的输出可以作为下一个管道的输入。有些过滤器有参数,过滤器的参数跟随冒号之后并且以双引号包含。其他过滤器:addslashes,添加反斜杠到任何反斜杠、单引号或双引号的前面;date,按指定的字符串参数格式化date或datetime对象;length,返回变量的长度。

        include标签,允许在模板中包含其他模板的内容。模板可以用继承的方式来实现复用,使用{% extends "xx.html" %}实现。

    Django模型。使用模型,必须创建一个app,使用djanjo-admin startapp appname,创建app。修改models.py添加数据库里面存放的表和字段。类名相当于表名,类里面的字段代表数据表中的字段。然后在settings.py中找到INSTALLED_APPS这一项,添加app名称。运行python manage.py makemigrations appname和命令python manage.py migrate appname创建表结构。接着可以进行数据库操作,赋值之后,要调用save方法保存到数据库。

    Django表单。HTTP协议以请求-回复的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,可以获得客户传来的数据,并根据url提供特定的服务。请求方法一般有GET和POST两种。在html文件中定义相应的请求方法,对应的view函数设置操作。每个view函数的第一个参数是一个HttpRequest对象。这个对象包含当前请求URL的一些信息。path,请求页面的路径;method,请求使用的方法,大写表示;GET,GET所有参数的类字典对象;POST,通GET;FILES,包含所有上传文件的类字典对象;user,代表当前登录用户;session,唯一可读写的属性,代表当前会话的字典对象。

    Admin管理工具。通过命令python manage.py createsuperuser创建超级用户,然后浏览器输入127.0.0.1:8000/admin登录进行管理台。为了让admin界面管理某个数据类型,需要先注册该模型到admin,修改admin.py,使用admin.site.register(ModelName)来注册数据模型。使用fields可以定义想要显示的属性,使用fieldsets可以修改布局,使用基于admin.TabularInline的类可以定义内联显示,使用list_display可以定义列表页的显示,使用search_fields可以为列表页增加搜索栏。

    Django是非常强大的web框架,可以让人更方便快捷的开发出更美观强大的web页面,今天的学习让我对Django的使用有了初步的了解,收获很大。

你可能感兴趣的:(2018-07-26 Django入门教程)