Django简介:
Django是一个开放源代码的web应用框架,它是一个基于M(Model)V(View)C(Controller)构造的框架,但是Django更关注的是M(Model)V(View)T(Templates),即模型,视图,模板。模型(Model)就是用来与数据库打交道,处理与数据相关的所有事务,模型中定义的一个类,相当于数据库中的一张数据表,类中定义的不同的属性,对应的是这张数据表中相应的字段。视图(View)是用来处理业务逻辑的,展示那些数据,怎么展示这些数据,都由视图函数来控制。模板(Templates)就是用来展示数据的HTML页面,是展示给用户看的页面。
————————————————————————————————————
MVC
大部分开发语言中都有MVC框架
MVC框架的核心思想是:解耦
降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用
m表示model,主要用于对数据库层的封装
v表示view,用于向用户展示结果
c表示controller,是核心,用于处理请求、获取数据、返回结果
MVT
Django是一款python的web开发框架
与MVC有所不同,属于MVT框架
m表示model,负责与数据库交互
v表示view,是核心,负责接收请求、获取数据、返回结果
t表示template,负责呈现内容到浏览器
——————————————————————————————————
1.先安装django
pip install django==2.2.9
补充:如何把本地计算机的pip下载换成豆瓣镜像下载(默认为国外下载,下载速度较慢)
使用命令方式:
1)先打开git bush或者计算机终端,查看是否有一个.pip的文件。
cd ~
ls -a | grep .pip
2)如果没有就创建一个.pip的文件
mkdir .pip
3)再cd .pip中创建一个pip.conf的文件(直接用vim,没有这个文件就会创建)
vim pip.conf
4)在pip.conf文件中加入以下代码就可以了。
[global]
index-url=https://pypi.doubanio.com/simple
直接创建方式:
打开C盘—> 用户—> Administrator —>创建.pip文件夹—> 进入.pip文件中创建一个pip.ini的文件(注意:这里的pip.ini可能有后缀.txt,要把.txt去掉)。
2.创建django项目并把它push到服务器上(做到版本控制,也可以直接克隆项目)
1)创建django项目并新建仓库
django-admin startproject djangocase
cd djangocase
git init
上传时有些文件没有必要传,所以可以先创建一个.gitignore的文件,把不必上传的文件放里面
vim .gitignore
注:这里不需要的文件可以用这个网站直接生成(http://gitignore.io/
,在网站里直接选择自己所用的工具),再加上venv和.idea就可以了
2)创建一个依赖项清单(把基本的依赖项写进去)
vim requirements.txt
3)上传项目到服务器
git add .
git status
git commit -m '项目的初始版本'
git tag v0.1
git log
git remote add origin [email protected]:lxh5200/djangocase.git
git push -u origin master
注:服务器的仓库可以使用码云(https://gitee.com/)或者GitHub(https://github.com/)这里使用码云(国内的速度较快)
3.用Pycharm来运行和实现已经创建的django项目
1)打开pycharm并使用git把服务器上的django项目克隆下来(克隆前先把前面创建在本地的项目删除,在工作中大部分是使用这种方法来继续进行项目)
~ 使用PyCharm的"get from version control"
~ git clone gitgitee.com:lxh5200/djangocase.git
2)创建虚拟环境
~ Linux/macOS: source venv/bin/activate
~ Windows: "venv/Scripts/activate
3)重建依赖项
pip install -r requirements.txt
4.创建一个Django的APP运用
python manage.py startapp carsearch
startapp 目录在项目的根目录中创建一个新目录,这个目录名为carsearch,其中包含一些python脚本:
❏ init.py:一个空 Python 脚本,存在的目的是告诉 Python 解释器,这个目录是一个Python 包;
❏ admin.py:注册模型,让 Django 为你创建管理界面;
❏ apps.py:当前应用的配置;
❏ models.py:存放应用的数据模型,即数据的实体及其之间的关系;
❏ tests.py:存放测试应用代码的函数;
❏ views.py:存放处理请求并返回响应的函数;
❏ migrations 目录:存放与模型有关的数据库信息。
views.py 和 models.py 是任何应用中都有的两个文件,是 Django 所采用的设计模式(即“模型-视图-模板”模式)的主要部分。
1、在动手创建模型和视图之前,必须告诉 Django 项目这个新应用的存在。为此,要修改项目配置目录中的 settings.py 文件。打开那个文件,找到 INSTALLED_APPS 列表,把 carsearch添加到末尾:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'carsearch',
]
为了方便使用,我们还可以配置应用文件设置语言时区:
找到settings.py 文件找到以下代码并修改:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
2、再在文件主目录下创建一个static的静态资源文件夹,把所需的静态资源放里面,在static下创建manages(静态图片),css,js。再在settings.py 文件中最后添加以下代码:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]
STATIC_URL = '/static/'
这样我们django项目的MVT中的m(models.py)和v(views.py)就有了,就差T了。我们在djangocase根目录下创建一个templates的文件夹,在里面创建模板页index.html。
3、再回到应用目录,修改views.py文件。
def search(request):
"""查询"""
context = {
'searched': False,
'current_page': 1,
'total_page': 0
}
if request.method == 'POST':
carno = request.POST.get('carno', '')
carno = carno.replace(' ', '').upper()
context['carno'] = carno
page = int(request.POST.get('page', '1'))
size = int(request.POST.get('size', '5'))
if carno:
context['searched'] = True
queryset = Record.objects.filter(
Q(car__carno__startswith=carno) |
Q(car__owner__contains=carno)
).select_related('car').order_by('-offend_time')
paginator = Paginator(queryset, size)
context['total_page'] = paginator.num_pages
context['page_obj'] = paginator.get_page(page)
return render(request, 'index.html', context)
说明:Django框架通过shortcuts模块的便捷函数render简化了渲染模板的操作,有了这个函数,就不用先创建Template对象再去调用render方法。
到此为止,我们还没有办法让views.py中的render函数找到模板文件index.html,为此我们需要修改settings.py文件,配置模板文件所在的路径。
4、切换到项目目录修改settings.py文件。
# 此处省略上面的内容
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
# 此处省略下面的内容
5、创建一个管理员用户
首先,我们需要创建一个用户来登录管理站点。使用下面的命令:
python manage.py createsuperuser
输入你想要的用户名
Username: admin
输入邮箱地址
Email address: [email protected]
最后输入你的密码两次。
Password: **********
Password (again): *********
Superuser created successfully.
6、 数据库迁移
python manage.py makemigrations # 根据models变化生成迁移文件
python manage.py migrate # 将变更记录同步到数据库
7、开启开发服务器
django管理站点会自动启动,我们只要启动开发服务器就可以来一起探索它了。
python manage.py runserver
现在打开一个浏览器,并且去/admin/-例如http://127.0.0.1:8000/admin/你应该会看到Django administration的登录界面。
进入admin管理站点。
这样一个简单的django小项目就建好了。
补充:创建并运行Django项目的方法:
第一种方式:
- django-admin startproject django1906
- 使用PyCharm打开项目并创建虚拟环境
- 安装项目所需依赖项
- 运行项目
~ python manage.py runserver
~ Add Configuration --> + --> Python
--> Script Path (manage.py)
--> Parameters (runserver)
第二种方式:
- 用PyCharm创建一个普通的Python项目
- 安装Django所需的依赖项
~ pip install django==2.1.14 - 把Python项目变成Django项目
~ django-admin startproject django1906 . - 运行项目
第三种方式:
- 克隆项目到本地
~ 使用PyCharm的"get from version control"
~ git clone [email protected]:jackfrued/django1906.git - 创建虚拟环境
~ Linux/macOS: source venv/bin/activate
~ Windows: "venv/Scripts/activate" - 重建依赖项
~ pip install -r requirements.txt