之前曾多次想好好地学习一下Django框架,但是一直没有沉下心来看,现在总算有这个机会来好好地接触Django框架。Django给人的感觉就是需要较多的配置,由于是第一次学习Django,所以将一些学习到的知识点记录如下:
使用虚拟环境virtualenv
开发环境使用的是Django1.10.6,Python3。先进行下载virtualenv,然后选择一个目录来安装virtualenv,例如,我们选择C:\Users\yangxg\Envs 目录,并将虚拟环境命名为blogproject_env,然后运行命令:
C:\WINDOWS\system32>virtualenv C:\Users\yangxg\Envs\blogproject_env
这样虚拟环境就安装好了,之后需要激活,运行blogproject_env\Scripts目录下的active来激活:
C:\WINDOWS\system32>C:\Users\yangxg\Envs\blogproject_env\Scripts\activate (blogproject_env) C:\WINDOWS\system32>
建立Django工程
首先进入目录C:\Users\yangxg\Workspace ,然后运行命令创建Django工程:
(blogproject_env) C:\Users\yangxg\Workspace>django-admin startproject blogproject
这样blogproject工程就创建成功了,进入blogproject目录,运行python manage.py runserver就可以开启服务,访问127.0.0.1:8000可以看到it works字样。Django默认的语言是英语,如果需要使用中文需要在 blogproject/blogproject/settings.py中
## 其它配置代码... LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' ## 其它配置代码...
将LANGUAGE_CODE = 'zh-hans',同时,TIME_ZONE =‘Asia/Shanghai’,再次访问127.0.0.1:8000即可看到中文信息
建立博客应用
激活虚拟环境
C:\WINDOWS\system32>C:\Users\yangxg\Envs\blogproject_env\Scripts\activate
创建应用
(blogproject_env) C:\WINDOWS\system32>cd C:\Users\yangxg\Workspace\blogproject (blogproject_env) C:\Users\yangxg\Workspace\blogproject>python manage.py startapp blog
应用的目录结构如下:
blog\ __init__.py admin.py apps.py migrations\ __init__.py models.py tests.py views.py
应用已经创建好了,但是Django还不知道这是一个应用,所以需要注册应用,在blogproject目录下的settings.py文件中找到INSTALL_APPS,将blog添加进去。
创建Django博客的数据库模型
以博客为例,需要建立三张表,即category(分类),tag(标签),post(文章),所以需要创建三个类
理解一对多和多对多两种关联关系
ForeignKey,这里一篇文章只能有一个分类,但是一个分类可以有多篇文章,所以分类用的是ForeignKey
ManyToManyField表示的是多对多的关联关系,例如一篇文章可以有多个标签,一个标签也可以有多篇文章,所以文章与标签之间是ManyToManyField
迁移数据库
首先同样是激活虚拟环境,
C:\WINDOWS\system32>C:\Users\yangxg\Envs\blogproject_env\Scripts\activate
然后进入manage.py所在的目录,运行,python manage.py makemigrate和python manage.py migrate
用Django方式操作数据库
存数据
首先创建category和tag
from blog.models import Category,Tag,Post
c=Category(name='category test')
c.save()
t=Tag(name='tag test')
t.save()
创建用户
python manage.py createsuperuser
Django处理Http请求
上网流程:
- 我们打开浏览器,输入我们想要访问的网站
- 浏览器知道我们想要访问的网站后,会把我们的访问意图包装成http请求,发送网址给对应的服务器。通俗的说就是浏览器帮我们通知服务器,说有人来访问你了,访问的请求包装在http请求里面了,你按照要求处理后告诉我,我再来帮你回应他
- 服务器处理了HTTP请求,然后生成一段HTTP响应给浏览器,浏览器解读这个响应,把相关内容显示在浏览器中显示出来,这样我们就看到了网站的内容。比如你访问我的博客主页,服务器接到这个请求后知道你要访问的是博客首页,首页显示的是全部文章的列表,于是他把数据从数据库中取出来,生成一个写着这些数据的HTML文档,包装到HTTP响应里发送给浏览器,浏览器解读响应,把HTML显示出来,这样我们就看到了文章列表的内容。
好吧,今天先到这,明天继续!!!