基本环境:
- 安装好pyCharm社区版
- 使用
pip install Django
安装好Django
步骤1:使用pyCharm新建项目
步骤2:新建Django项目
命令:django-admin startproject project_name
步骤3:新建项目下的app
理论上这个时候如果使用指令python manage.py runserver 8000
即可以成功启动Django内置服务器
注意:
- 在manage.py文件所在目录的命令行去使用该指令;
- 你可以直接再该指令后跟需要监听的端口号;
- 用于开发的服务器在需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。
新建app命令:python manage.py startapp app_name
步骤4:在项目下新建 templates 路径
注意*:
此目录下即用来存放我们的html文件;
- 此目录一般是与app的主目录是平级的。当然也可以建立在app的目录下,主要取决于你的模板,一般是全局使用呢,还是专门服务于某个app;
请务必查看项目设置中是否已设置自动检索此目录,方法如下:
1. 打开项目中的 settings.py 文件 2. 找到变量 TEMPLATES ,确认其键名为 DIRS 的键值是否为:[os.path.join(BASE_DIR, 'templates')]
步骤5:在项目下新建 static 路径
- 此目录下即用来存放我们的静态文件:img、css等;
- 此目录一般是与app的主目录是平级的,也可自行选择目录;
- 请务必查看项目设置中是否已设置自动检索此目录,方法如下:
1. 打开项目中的 settings.py 文件 2. 末尾处新增变量 STATICFILES_DIRS 并赋值为:[os.path.join(BASE_DIR, 'static')]
步骤6:为MTV模型的各文件建立联系
6.1 首先理解下Django的MTV模型
我们以 http://127.0.0.1:8000/index 简单作下说明:
1.用户提交Request请求:把浏览器中url地址提交给Django服务器
2.Request首先到达的淡蓝色区域,你可以理解为Django项目中的 urls.py 文件,在此文件中会去根据你事先在 urlpatterns 列表中定义好的url路径去确定 index/ 指向哪个 Views文件,即你编写好的某个app目录下的 views.py 文件
3.views.py 文件中的
函数render(request,'xxx.html',model_Var)
将会获取数据模型:Models 和 模板网页:Templates,在三者的共同渲染下,给客户端返回 Response,呈现出完整网页。
6.2 具体方法
(1)在urls.py 文件中添加路径
from django.contrib import admin
from django.urls import path
from blog.views import index
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', index),
]
(2)在views.py 文件中构造render(request,templates,model)
函数
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
(3)以上即可以最简单的构造一个访问,接下来的步骤将会说明如何使用models.py
步骤7:连接数据库并使用 models.py
7.1 在Django中连接MongoDB数据库
Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL,MongoDB等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用。
在 settings.py 中添加设置:
# 引入mongoengine 以连接MongoDB数据库
from mongoengine import connect
connect('website', host='127.0.0.1', port='27017')
使用的库为 mongoengine,其使用文档详见:http://docs.mongoengine.org/tutorial.html
7.2 在 models.py 中书写ORM数据模型
from mongoengine import *
# 引入mongoengine 以连接MongoDB数据库
from mongoengine import connect
connect('ganji', host='127.0.0.1', port=27017)
#定义类
class Info(Document):
cate_name = StringField()
person = StringField()
title = StringField()
cate = StringField()
post_time = StringField()
datetime = StringField()
position = StringField()
phone = StringField()
url = StringField()
price = IntField()
meta = {
'collection': 'info_list2'
}
#展示数据
for i in Info.objects[:1]:
print(i.cate_name)
说明:
1.类的定义:可以理解为一个类就是数据库中文档(每一行数据)的模板,因此继承于Document
2.其中 meta 属性中,需要写明这个类的指向,即你要访问哪个collection中的数据
3.使用class.objects
属性来完成对每个文档的遍历
4.class.objects
支持切片操作
步骤8:在views.py中使用models.py 中的数据模型
from django.shortcuts import render
# 从app模块导入blog中的model文件,使用其中的Info类
from blog.models import Info
def index(request):
# 类的实例化操作
info=Info.objects[:1]
context = {
'info': {
'title': info[0].cate_name,
'author': info[0].person,
'des': info[0].title,
}
}
return render(request, 'index.html', context)