测试开发之创建你的第一个Django项目(一)

一.代码仓库同步

1.目的

为了使得代码管理更加方便,如果你不打算同步的话,可以直接跳到第二大步——创建django项目

其次,你也可以使用github、svn等代码仓库管理你的代码,这里选用gitee是方便无科学上网,微信端可以随时通过gitee查看代码笔记的我这种懒人。

2.gitee创建仓库

gitee账号创建这种事各位大佬想必都是信手拈来,这里就不做赘述。

1.登录gitee

2.创建仓库
在这里插入图片描述

3.填写对应的相关信息,点击创建
请添加图片描述
4.创建好了之后的页面如下,可以添加一个初始化文件,跟着提示的命令进行操作即可
请添加图片描述

3.将仓库clone到本地

以windows操作系统为列

1.安装git

2.在本地需要构建仓库的地方右键选择git bash here

请添加图片描述

3.复制在gitee构建的仓库的https地址

4.输入

git clone 你的仓库https地址

5.完成(文件夹尽量不要出现中文和空格)
请添加图片描述

6.之后即可在本地同步代码到gitee仓库,同时可以在别的电脑同步代码,后续细讲

7.常用命令

git clone #克隆项目
git add ./ #添加
git commit -m "提交描述" 
git push origin master 

二.创建django项目

django是一个高级的python web框架

1.创建虚拟环境

实际开发过程中每一个项目都会单独的创建一个python的虚拟环境。

本质上python的虚拟环境是对系统python环境的一个拷贝,依赖系统环境,又和系统环境隔离。

virtualenv

安装:

pip install virtualenv

创建虚拟环境

virtualenv <环境名称>

会在当前目录下创建一个python的虚拟环境

可以通过-p参数指定要虚拟的python解释器

使用pycharm创建

注意:必须要专业版,社区版有些功能被阉割了

1.在pycharm中打开这个项目

请添加图片描述

2.File -> settings -> project -> Python interpreter -> show all -> 左下角加号添加

3.我个人习惯,喜欢专门创建一个文件夹存放我的虚拟环境(该文件夹无中文和空格符号,否则容易导致项目报错,你还找不到原因),勾选一个基本的解释器就行。
请添加图片描述

4.等待创建成功

请添加图片描述

5.创建好了之后,你就得到了一个干净的虚拟环境了,点击apply应用这个虚拟环境

请添加图片描述

6.关于配置pip全局镜像,请查看往期内容,关键字搜索,pip配置全局镜像

2.虚拟环境的使用

使用Terminal

请添加图片描述

在pycahrm中使用Terminal等效于windows的cmd,mac的终端

我为什么使用Terminal

1.由于我使用的是虚拟环境,我通过pycharm打开该项目,在Terminal我可以直接进入该项目的虚拟环境

请添加图片描述
如图所示,前面括号里面的便是虚拟环境名称

2.方便管理,一个项目对应一套环境,在实际工作中可以避免环境的冲突

3.如果是用windows或者mac自带的,那么你直接在项目根目录下使用pip,他会直接引用你环境变量中配置的第一个python环境,而不是你当前的项目的虚拟环境,除非你把虚拟环境配置到环境变量并且是第一个(使用命令where python 或 where pip查看你电脑拥有的环境变量)

4.在Terminal进行pip下载,下载的site-package直接就在你虚拟环境里面

3.django下载

两个等于号,前后不能有空格

pip install django==2.2

请添加图片描述

看到这句就是下载成功了

4.创建django项目

1.依然在Terminal中,确认一下是在项目根目录下

2.创建django项目(项目名自己取,我取的是XZAndroidPlatform)

django-admin startproject <project_name>

3.进入创建的这个项目里面,创建app(app名字自己取,我的是xiaozai_app)

django-admin startapp xiaozai_app

请添加图片描述

4.启动项目

python manage.py runserver

请添加图片描述

5.点击该网址,看到如下页面,恭喜你成功创建自己第一个django项目

请添加图片描述

5.重新打开django项目

pycharm重新打开XZAndroidPlatfor

1.pycharm一键启动django项目

重新打开项目之后,可以看到pycharm上方有如下按钮(社区版没有),点击绿色按钮即可启动django项目

请添加图片描述

如果出现红叉,请点开编辑,选择前面创建的虚拟环境路径即可

我的配置如下

注:如果勾选了Run browse,那你每次启动django服务的时候都会自动给你打开浏览器进入django项目下。

请添加图片描述

2.修改端口

修改上图的post,因为8000端口很容易被平常其他的项目占用,我们可以改为其他的不常用的端口,如8088,8099等

我的改为了8088端口

3.认识各个文件

请添加图片描述

XZAndroidPlatform 文件夹 - > 项目文件夹

– xiaozai_app 文件夹 -> 注册的app

— migrations文件夹 -> 迁移记录

— admin.py : 把数据库的具体表注册到后台,便于管理(后台管理)

— apps.py : 当前应用配置信息的入口

— models.py : 数据模型模块

— tests.py : 单元测试

— views.py : 视图,写实际后端代码

– XZAndroidPlatform 文件夹 -> django的项目目录

— settings.py:相关设置及配置

— urls.py : 项目的跟路由,连接url和后端的桥梁

— wsgi.py : 兼容wsgi协议的web服务器入口

– db.sqlite3 : django自带的一个小型数据库文件,而且是数据库本体,一般小项目可以直接使用

– manage.py : 项目管理命令行工具

4.Django的常用命令

任务命令
创建新项目django-admin.py startproject project_name (注意: windows系统下请用django-admin startproject xxx)
创建新应用python manage.py startapp app_name (注意: 你需要先cd进入创建的项目文件夹)
检测模型变化,生成新的数据库迁移文件python manage.py makemigrations [app_label] (注意: app名字可选。如果一个项目包含多个app,而你只更改了其中一个app的模型,建议后面加入具体的app名)
同步数据库与模型python manage.py migrate
启动服务器python manage.py runserver
创建超级用户python manage.py createsuperuser
修改用户密码python manage.py changepassword username
打开交互终端python manage.py shell python manage.py dbshell(数据库交互)
查看当前版本python manage.py version

django-admin.py和manage.py其它命令

命令用途
python manage.py flush清空数据库内容,只留下空表
python manage.py test开始测试
python manage.py collectstatic搜集静态文件
python manage.py createcachetable创建缓存表
python manage.py check检测项目有没有问题
python manage.py inspectdb [table]根据已有数据库反向生成django模型。你可以选择数据表名字
python manage.py makemessages搜集所有的messages,可以生成指定文件格式如xml文件,供后期翻译
python manage.py sendemail [email]发送测试邮件
python manage.py showmigrations显示所有数据库迁移文件

三.初始化项目操作

1. admin.py自动注册

admin.py里写成如下这样,自动注册(原作者:测试开发干货——我去热饭)

from django.contrib import admin
# Register your models here.

import inspect,sys
from .models import *

cls_members = inspect.getmembers(sys.modules[__name__],inspect.isclass)
for name,cls in cls_members:
    admin.site.register(cls)

2.settings.py文件添加配置

(1)修改时区和语言

LANGUAGE_CODE = 'zh-hans'     # 改中文

TIME_ZONE = 'Asia/Shanghai'   # 改时区

修改之后启动项目界面变成了中文

请添加图片描述

(2)安装应用

在settings文件的INSTALLED_APPS中去注册。

新增xiaozai_app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xiaozai_app'
]

(3)增加可访问权限

ALLOWED_HOSTS = ['*']  #让其他人都能访问本平台 

一般情况都是填写允许的访问IP,这里我填写的是允许所有

(4)解决跨域问题

跨域资源共享。

浏览器默认是不允许跨域发送ajax。

我们当前项目需要允许跨域。

跨域如何实现?

通过请求头,需要浏览器和服务器同时支持。

整个cors通信过程,都是浏览器自动完成的,不需要用户参与。

1.先pip install django-cors-headers

2.把中间件修改成如下配置

注意:设置的时候要设置到所有的返回响应的中间件的最上面

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware', #第三方解决跨域头问题的中间件
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True #加上允许所有跨域

如果只想运行某几个IP跨域,则书写如下:

# CORS设置
# 允许跨域的域名列表
CORS_ALLOWED_ORIGINS = [
    'http://localhost:8080',
    'http://127.0.0.1:8080'
]

(5)创建超级管理员

python3 manage.py createsuperuser

请添加图片描述

3.配置成所有人都可以进行访问的地址

①port处为空

②Additional options 写为 0.0.0.0:8000

③勾选Run browser并填写相关内容(可以不勾,填在Host那里也可以)

在这里插入图片描述

到此,一个django项目的创建终末就结束了。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐