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的使用有了初步的了解,收获很大。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容