创建django项目
首先进入到想要创建项目的文件目录下,在该目录下打开控制台(powershell、cmd都可以)或者使用pycharm打开该文件目录,进入下方 terminal 窗口,输入django-admin startproject mysite
创建第一个django项目。
添加index页面,使用模板
在 django 项目中新建 templates 文件夹,并在其中添加 index.html ,
templates/index.html
1 | <!DOCTYPE html> |
在 mysite 应用中添加 views.py 写入代码,
mysite/views.py
1 | from django.shortcuts import render |
模板index
中的{{ title }}
会将我们在return render(request, 'index.html', content)
中content
的title
值替换上去。这就是模板的作用。
修改 urls 的配置, 和setting 的配置。
mysite/urls.py
1 | from django.contrib import admin |
mysite/settings.py
由于使用了模板,我们需要吧模板目录添加进去,让django知道在哪里寻找它。
1 | # 在 setting 中找到 TEMPLATES,在其中的'DIRS'添加 templates 文件夹的路径 |
然后runserver
起来,便可以看到我们第一个页面了。
在进行下一步之前,我们来拓展一下我们的模板。
在templates 文件夹中添加 base.html 作为我们每一个页面的基底,
1 | <!DOCTYPE html> |
并修改index.html
1 | {%extends "base.html" %} |
这是模板的第二个功能,内容嵌套,index 的内容, 可以嵌套到 base 中,最后呈现出来的结果和第一次写的 index 是一模一样的。
添加django应用
接下来我们来制作一个具有用户系统的留言板项目。
(pycharm)在terminal窗口中进入django项目的根目录,输入命令django-admin startapp account
和 django-admin startapp messageBoard
创建2个应用。
如果不是pycharm,直接用 cmd 或者 powershell 都是可以的。
第一个account
是用来作用户管理的,第二个messageBoard
就是用来做留言信息管理的。创建完应用后进入settings.py
中添加刚刚创建的两个应用。
mysite/settings.py
1 | # 找到 INSTALLED_APPS, 在其后面添加 account 和 messageBoard |
为account写用户模型
作为用户有2个属性,1是用户名,2是密码,其他可以按需添加。然后为它写几个方法。这里我添加了注册函数和验证密码是否正确的函数,添加完模型后要进入manage.py
为添加的模型建立数据库。
这里同时给密码进行了加密处理,让存储在数据库的密码不为明文。
account/models.py
1 | from django.db import models |
django对数据库进行操作很简单。如这里的Users类:
1 | # 增加成员 |
添加完模型后,在项目根目录进入命令窗口(terminal/cmd/powershell),输入 python manage.py makemigration
记录下我们对 models 的改动,然后输入python manage.py migrate
将改动写入到数据库。
为account添加视图和模板,写入urls测试
在account下的view添加注册的视图,当用户进入到该视图时先检查它是否进行了注册,然后获取注册信息,调用注册函数,并保存cookies然后返回结果。登录视图也相同,先检查是否进行了登入,调用验证密码的函数,返回结果。并写好对应的templates,在urls里加入就可以进行测试了。
首先为account添加注册,登入和登出的界面,
templates/register.html
1 | {%extends "base.html" %} |
然后是登入界面,和注册类似
1 | {%extends "base.html" %} |
最后是登出
1 | {%extends "base.html" %} |
模板写好后就可以继续写我们的视图了。
account/views.py
1 | from django.http import HttpResponseRedirect, HttpResponse |
这里我使用了 cookies 来保存用户名字来识别用户登入状态。cookies 只要不主动删除,浏览器会一直为其保留直到有效期过。在这段期间内 cookies 都可以被读取到。
然后,在 account 文件夹中添加 urls.py 专门管理这个应用的路由
account/urls.py
1 | from django.urls import path |
最后在 mysite/urls.py 中导入 account 的 urls 就可以了
mysite/urls.py
1 | urlpatterns = [ |
然后方便测试,在 base.html 中添加用户操作的链接。
1 | <!DOCTYPE html> |
这里新用到了模板的2个功能,一个是 url,
1 | {% url '路径名' %} |
相当于直接访问 url
中 name
为 “路径名” 的地址。
1 | {% if 条件 %} |
就是段 if 判断和 python 的 if 功能是一样的
然后就可以 runserver
开始测试了。