django基础

开发测试工具的目的:1、提高测试效率 2、提升测试质量 3、找出测试中的痛点、浪费时间的地方
后端
flask:比较轻量,需要写sql连接数据库,适合快速开发
django:python服务端开发框架,比较强大,不会写sql也无所谓,操作数据库都准备好了

安装Django命令:>pip install django==2.1.0(如果python是3.5的,用2.2的django,高于3.5的用2.1.X)
卸载Django命令:>pip uninstall django==2.1.0或者pip uninstall django
查看Django版本命令:>python -m django --version或者>>>import django >>>print(django.VERSION)

开始第一个demo---创建项目与应用
如果你已成功安装Django,在python.exe的同级目录Scripts目录中将会多出一个django-admin.exe可执行文件。在Windows命令提示符或Timinal下输入django-admin命令回车,这里罗列了Django所提供的命令,使用startproject命令来创建项目
>django-admin startproject ssj
ssj项目结构如下:

ssj/__init__.py:一个空的文件,用它标识一个目录为Python的标准包
ssj/settings.py:Django项目的配置文件,包括Django模块应用配置、数据库配置、模板配置等
ssj/urls.py:Django项目的URL声明
ssj/wsgi.py:与WSGI兼容的Web服务器,为你的项目提供服务的入口点(部署到生产环境,在服务器上用它的)
manage.py:一个命令行工具,可以让你在使用Django项目时以不同的方式进行交互

运行项目---Django提供了Web容器,通过runserver命令就可以把项目运行起来,\ssj>python manage.py runserver,出现如下图的url:

点击这个url,Django默认通过本机的8000端口来启动项目,访问http://127.0.0.1:8000就OK了,如果当前环境的8000端口号被占用了,那么也可以在启动时指定IP地址和端口号,通过\ssj>python manage.py runserver 127.0.0.1:8001即可,127.0.0.1为本机的IP地址,8001为设置的端口号,别的端口也行,只要不被占用,也可以通过\ssj>python manage.py runserver 0:80020代表在一个局域网内的所有人都可以访问,如下图:

上图证明django项目已经创建好了,就可以开发了,只是一个空的项目,\ssj>python manage.py,查看manage所提供的命令如下图:

接下来使用startapp创建子项目user(startapp是在刚才的项目ssj下面创建子项目的命令),\ssj>python manage.py startapp user,回车后可以看到如下:

Django应用的目录结构(通过PyCharm开发工具截图):
migrations/:用于记录models中数据的变更
admin.py:映射models中的数据到Django自带的admin后台
apps.py:用于应用程序的配置,在新的Django版本中新增文件
models.py:Django的模型文件,创建应用程序数据表模型(对应数据库的相关操作)
tests.py:创建Django测试用例
views.py:Django的视图文件,控制向前端页面展示的内容(写逻辑的地方)

也可以通过File->New Project来创建项目,如下图:

两种方法,哪种都可以,最好用下面这种方式因为把目录结构都创建出来了,Location要改一下路径(已改为D:\my_django)

创建成功后可以看到my_djangotemplatesuser等目录

打开my_django\settings文件,修改LANGUAGE_CODE = 'en-us'、TIME_ZONE= 'UTC'和USE_TZ = True 这三处,把en-us改成zh-Hans,把UTC改成Asia/Shanghai,把True改成False,修改如下图,然后刷新页面,可以看到页面是中文的

 

多个python版本的情况下:
1、创建一个虚拟环境
2、virtualenv django_name
3、mac是cd django_name,在cd bin然后执行source activate,windows是cd django_name/scripts
4、mac是source beactivate, windows是source beactivate.bat
5、pip install django==2.1

 

接下来修改settings.py,先在DATABASES里配置mysql数据库,配置如下:
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db1',
'USER': 'user1',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': 3306
}

实际应用时改成自己的mysql相关信息,同时要在my_django\my_django\__init__.py里加上下边这两行代码,意思是把pymysql伪装成MySQLdb,这样django就能找到了
import pymysql
pymysql.install_as_MySQLdb()

在django底层用mysqldb这个库,不装这个库就会报错,而且装起来比较费劲,要依赖好多模块,现在不用mysqldb,都用pymysql
这个项目中先把mysql的数据库信息先注释掉,先用sqlite3,sqlite是部署在本地,sqlite3速度比较快,部署到服务器上要用mysql

web开发分为前后端分离(前端专门写前端,后端负责写接口,提供接口文档)前后端不分离两种模式,大部分都是前后端分离式开发,接下来用前后端不分离的方式开发博客。首先下载模板的安装包,然后解压为个人博客模板<<simple>>,然后在一级目录my_django下新建一个static目录,用来存放图片、css、js等静态文件,django项目里templates目录是用来存放html文件,首先在templates下新建一个html文件,叫做index.html,添加代码如下:

在views.py(用来写逻辑)文件里添加如下代码:

在urls.py文件里添加如下代码:

启动服务的情况下,访问http://127.0.0.1:8000/index/,首先会找index这个url,对应的是index方法,再去views.py里去看index方法的逻辑,如果存在index这个方法就渲染index.html,如果不存在就报404,返回页面用render,返回字符串用HttpResponse,HttpResponse类在django.http.HttpResponse中,以字符串的形式传递给客户端,views.py更新代码如下图:

{{ }}或{% %}不是html的,是django里的语法,这是前后端不分离的。django是web开发框架、服务端开发框架,用于开发测试工具和测试平台

web开发模式:django是MTV模式,model是操作数据库的,templates是视图,views是控制逻辑;其他语言是MVC模式,model是操作数据库的,views是视图,controller是控制逻辑

posted @ 2020-01-08 09:57  laosun0204  阅读(152)  评论(0编辑  收藏  举报