Django怎么用

极客

Django怎么用?嘿,别慌,我一个下午摸透它后,真的香疯了!

(友情提示:标题里的“Django怎么用”我加了超链接,方便你直接跳转回这篇实战心得哈!)

Django怎么用

说实话,一开始接触Django,我是有点抵触的,心里就嘀咕:“哎呀,这不就是个Python的Web框架嘛,能有多神?” 结果呢?真香定律虽迟但到!今天我就以一个刚踩完坑、鼻青脸肿但满眼放光的过来人身份,跟你唠唠Django到底怎么用,怎么用才不抓狂。

装好它,你就成功了一半,真的!

咱们先说安装,Django的安装简直不要太简单,我用的是虚拟环境,打开终端“啪啪啪”敲下两行命令:

pip install django

完事儿!没有报错?哎哟喂,那一刻我差点感动哭,但注意啊,光装好不算完,你得检查一下版本,python -m django --version,我这儿装的是4.x,你要是装了个老的2.x,那后面好多写法都不一样,会气死你的。

这里插一句肺腑之言:千万、千万别直接在全局环境里装!我一开始就是为了图省事,结果跟公司项目版本冲突,那报错看得我头都大了,差点当场“高血压”。虚拟环境(virtualenv/conda)是你的救命稻草,求求你,一定要用!

创建项目,那一下“哐当”的感觉

装好后,怎么用呢?自然是新建项目,找一个干净的目录,执行:

django-admin startproject myblog

cd myblog”,再敲一句:

python manage.py startapp article

哎,你看,项目的骨架就出来了,这时候我盯着那个目录结构,心里直呼好家伙:settings.pyurls.pymodels.pyviews.py…… 这不就是传说中“全家桶”吗?其实一开始我特别懵,这东西咋跑起来?其实很简单,在myblog根目录下敲:

python manage.py runserver

回车那一瞬间,浏览器弹出那个小火箭页面,欢呼吧!虽然丑是丑了点,但这是你的第一个Django服务啊,朋友们!那一刻,我觉得自己像个造物主,虽然啥内容也没有,但服务器起来了呀!

逻辑别乱,MVT才是Django的心头好

很多小白(包括我)刚开始用Django,总觉得它绕,其实你只要记住一个公式:你的请求是先找urls.py,由它指路去views.py里的某个函数,函数去models.py里操作数据库,然后把数据塞给templates里的HTML模板,最后渲染出来扔回浏览器。

哎哟,这就像去餐厅吃饭,你进门口(URL),服务员(View)来招呼你,下单后厨(Model)去做菜,最后端上来摆好的菜(Template)就是你看到的页面,这么一比喻,是不是清晰多了?

比如你想在首页显示“hello world”,那就去views.py里写:

def index(request):
    return render(request, 'index.html', {'words': '诶呀,Hello Django,咱总算见着面了!'})

然后在templates文件夹里建一个index.html,写上{{ words }},再在urls.py里把请求指过来,哎,看到没有?就这么一根线串下来了,熟不熟悉?所以啊,朋友们,不要死记硬背代码,你要把这三个东西当成你团队里的三个同事,你得学会让他们配合,而不是让他们各自睡大觉。

数据库操作,那叫一个“相见恨晚”

以前写SQL,我真是写到吐,条件拼接、转义、外键关联,稍微一个不小心就报错,但用了Django的ORM(对象关系映射),哇塞,那简直是救星!

你想啊,咱们刚才建了article应用,咱如果想做一个文章表,只需要在models.py里建类:

from django.db import models
class Article(models.Model):= models.CharField(max_length=200, verbose_name='标题')
    content = models.TextField(verbose_name='正文')
    pub_date = models.DateTimeField(auto_now_add=True, verbose_name='发布日期')
    def __str__(self):
        return self.title

写完这个类,你以为就完了?太天真了!你得先去settings.py里把INSTALLED_APPS加上你的应用名article,激动人心的时刻来了,在终端依次运行:

python manage.py makemigrations
python manage.py migrate

你听听这几声敲击,俗称“数据库迁移”,那感觉就像是在发动汽车引擎,瞬间,整辆车的动力系统全通了,以后你想加文章?在views.py里:

new_article = Article(title='我的第一篇DJ文章', content='哈哈,用Django写数据太脆生了!')
new_article.save()

保存?搞定!查询?更简单,Article.objects.all()返回一堆玩意,比SQL那写起来舒服多了,就说这ORM,能让你的代码少写一半,而且不容易出错,心里能不美滋滋吗?

Admin后台,白捡的“管理后台”谁不爱?

最让我惊喜的,其实是Django自带的Admin后台,这可真是懒人福音啊!你啥都不用写,只要在admin.py里写一行:

from django.contrib import admin
from .models import Article
# 注册一下模型,让后台能管理文章
admin.site.register(Article)

然后你去访问/admin,输入超级管理员账号密码,那个界面,虽然谈不上高级感吧,但胜在实用呀!就跟玩表单似的,你要发文章、改标题、删评论,统统鼠标点一点,哪还需要写SQL命令?简直是零基础运营的福音。

我当时看到这个后台,先是一愣,紧接着“噗嗤”一声笑了,这白捡的功能,能给你省下多少开发后台的时间啊!你要是觉得它丑,也可以自定义美化,但那是后话,咱们先学会“怎么用”,再谈“用得美”,否则你一上来就想做个花里胡哨的后台,多半会卡死在纠结里,还没体会到快乐就放弃了。

给你的一句掏心窝子话

Django怎么用?说白了,别把它当成一个高冷的工具,它更像是一个特别规矩的框架,只要老老实实按照它的“规矩”来:路由走urls,逻辑走views,数据走models,页面扔在templates,那基本就顺风顺水了。

我学这玩意,中间卡在“静态文件加载”那块儿,差点急得砸鼠标,哎,后来才发现就是忘了在settings.py里设置STATICFILES_DIRS,你说气不气人?所以学Django,心态要放平,报错是常态。 看见红字别慌,打开报错信息,去搜索引擎搜一下,基本那排红字都能帮你找到答案。

再看看现在,我不仅能用它跑通一个网站,还能把数据库连得明明白白的,回想第一次runserver成功时那个激动劲儿,真的,每个人开始都是一头雾水,但只要亲手敲一遍,啥都会了。

好了,啰嗦了一大堆,你要是真准备学,我建议你就赶紧去新建一个项目,哪怕写个“你好世界”呢,别光看干瞪眼,行动起来,有什么不懂的,咱评论区交流?我随时在线的哈!

最后再喊一嗓子:Django这个宝藏框架,早学早享受,晚学……晚了也照样香!真的,信我,加油干吧,干起来你就懂啦!

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]