django使用笔记
1.安装virtualenv -----不是必须的
sudo pip3 install virtualenv
#创建文件夹--virtualenv将在这个文件夹下面,产生一套独立python环境
mkdir myproject
cd myproject
virtualenv venv -p python3 #创建一个基于 python 3 的虚拟环境。
venv/bin/activate #启动环境
deactivate #关闭环境
2.安装Django
pip install django
3.开始项目
#命令行工具 django-admin 会在安装 Django 的时候一起安装的。
django-admin startproject myproject #创建一个 名为myproject的Django 项目
可以看到,一个初始 Django 的项目由五个文件组成:
- manage.py:django-admin 是命令行工具的快捷方式。它用于运行与我们项目相关的管理命令。我们将使用它来运行开发服务器,运行测试,创建迁移等等。
- init.py:这个空文件告诉 Python 这个文件夹是一个 Python 包。
- settings.py:这个文件包含了所有的项目配置。我们会一直使用到这个文件。
- urls.py:这个文件负责映射我们项目中的路由和路径。例如,如果您想在 URL /about/ 中显示某些内容,则必须先将其映射到此处。
- wsgi.py:该文件是用于部署简单的网关接口。
启动Django自带的web服务器
python manage.py runserver
4.创建项目里的应用
- app:是一个可以执行某些操作的 Web 应用程序。一个应用程序通常由一组 models(数据库表),views(视图),templates(模板),tests(测试) 组成。
- project:是配置和应用程序的集合。一个项目可以由多个应用程序或一个应用程序组成。
#创建一个名为print的服务
django-admin startapp print
- migrations /:在这个文件夹中,Django 会存储一些文件以跟踪您在 models.py 文件中创建的更改,目的是为了保持数据库和 models.py 同步。
- admin.py:这是 Django应用程序一个名为 Django Admin 的内置配置文件。
- apps.py:这是应用程序本身的配置文件。
- models.py:这里是我们定义 Web 应用程序实体的地方。models 由 Django 自动转换为数据库表。
- tests.py:该文件用于为应用程序编写单元测试。
- views.py:这是我们处理Web应用程序请求(request)/响应(resopnse)周期的文件。
打开settings.py并尝试查找INSTALLED_APPS变量: 并在其中加上‘print’
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'print',
]
models数据库表的定义
from django.db import models
#定义一张表
class template(models.Model):
name = models.CharField(max_length=30, unique=False)
hospital = models.CharField(max_length=300, unique=False)
printtemplate = models.TextField()
** python manage.py makemigrations 根据model创建定义数据库表的文件**
python manage.py migrate 将迁移应用到数据库中--默认sqlite
view模板
from django.http import HttpResponse, FileResponse, JsonResponse
from .models import template
from django.core import serializers
import json
# 获取一个医院的打印模板列表-get
def getlist(request):
hospital = request.GET.get('hospital')
thelist = template.objects.filter(hospital=hospital).values()
thelist = list(thelist)
print(thelist)
return JsonResponse(thelist, safe=False)
# 对一个医院新增打印模板-post
def createtemplate(request):
param = json.loads(request.body)
name = param['name']
hospital = param['hospital']
printtemplate = param['printtemplate']
template.objects.create(name=name, hospital=hospital, printtemplate=printtemplate)
url.py模板
路由请求对应的方法
urlpatterns = [
path('getlist', views.getlist, name='getlist'),
path('createtemplate', views.createtemplate, name='createtemplate'),
path('admin/', admin.site.urls),
]