Python——django 学习笔记1
创建Django项目
-
打开code目录创建bookmanager的项目工程
cd ~/Desktop/Code django-admin startproject bookmanager
-
测试工程:运行bookmanager的项目工程
python manage.py runserver
-
创建名为pay的子应用
python manage.py startapp pay
pycharm 导入 Django项目
- 打开项目
![]() | ![]() |
- 配置项目的python环境
在pycharm使用django进行数据开发
-
在项目中添加子应用
-
定义模型类
打开models.pyfrom django.db import models # Create your models here. # 准备书籍列表信息信息的模型类 class BookInfo(models.Model): # 主键当前会自动生成 # 创建字段,字段类型 name = models.CharField(max_length=10) # 准备人物列表信息的模型类 class PeopleInfo(models.Model): name = models.CharField(max_length=10) gender = models.BooleanField() # 外键约束,人物属于哪本书 book = models.ForeignKey(BookInfo, on_delete=models.CASCADE) # on_delete=models.CASCADE, # 删除关联数据,与之关联也删除
-
模型迁移
生成迁移文件python manage.py makemigration
再迁移,此时生成数据库中的生成表
python manage.py migrate
-
安装数据库插件,在setting打开plugins,搜索database sql 安装 Database Navigator
-
操作数据库
1.模型继承自谁 2.ORM对应关系 表 --> 类 字段 --> 属性
-
修改站点语言与时区
打开settings.py# LANGUAGE_CODE = 'en-us' # 语言 中文 LANGUAGE_CODE = 'zh-Hans' # TIME_ZONE = 'UTC' # 时区 TIME_ZONE = 'Asia/shanghai' USE_I18N = True
-
创建站点超级用户
在终端界面输入python manage.py createsuperuser
-
登入站点
http://127.0.0.1:8000/admin/
(创建超级用户时的用户名和密码) -
注册模型
打开 子应用book的admin.pyfrom django.contrib import admin from book.models import BookInfo # Register your models here. # 注册模型 # admin.site.register(模型类) admin.site.register(BookInfo)
在站点界面添加数据
返回数据在页面显示
-
视图和URL
在子应用创建一个urls.py 用来接收用户请求
打开子应用的views.py,返回一个响应from django.shortcuts import render from django.http import HttpRequest, HttpResponse # Create your views here. """ 视图 1. 是一个python函数 2. 函数的第一个参数就是请求 3. 返回一个响应 响应是HttpResponse的实例对象或子类实例对象 """ def index(request): return HttpResponse('index')
接着打开项目的urls.py,输入url请求的数据
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), # 比如请求的是:http://127.0.0.1:8000/index/ path('', include('book.urls')), ]
接着打开子应用创建好的urls.py,接受请求
from django.conf.urls import url from book.views import index urlpatterns = [ # url(正则,视图函数名) url(r'^index/$', index), ]
其他子应用的视图和URL同理
-
模板template
首先创建template目录和对应子应用目录以及index.html
然后打开项目目录下的settings.py设置接受模板目录路径
接着打开子应用的views.py,在子应用的视图中返回模板的响应
接着在模板中的index.html页面制定内容<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--{{name}}接收book.views中的数据--> <p>{{name}} is a beautiful girl</p> </body> </html>
引用数据库数据到页面
-
更改前面子应用的views.py
from django.shortcuts import render from book.models import BookInfo from django.http import HttpRequest, HttpResponse # Create your views here. """ 视图 1. 是一个python函数 2. 函数的第一个参数就是请求 3. 返回一个响应 响应是HttpResponse的实例对象或子类实例对象 """ def index(request): # 准备上下文,定义字典中的{测试数据} name = "Jane" # 在数据库中查询数据, # objects.all() 返回的是queryset对象,也就是查询对象集合 # objects.get() 返回的是列表 # objects是Manager类型的对象,定义在from django.db import models中, # 是默认的管理对象,也就是objects = Modes.Manage() 。 books = BookInfo.objects.all() context = { 'name': name, 'books': books, } # 将上下文交给模板进行处理,再返回视图响应给客户端 return render(request, 'book/index.html', context) # return HttpResponse('index')
-
更改模板下的index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--{{name}}接收book.views中的数据--> <p>{{name}} is a beautiful girl</p> <ul> # 遍历数据库中的书名 {% for book in books %} <li>{{ book.name }}</li> {% endfor %} </ul> </body> </html>