1.1 什么是django
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以”插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。
特点:Django原生提供了众多的功能组件,让开发更简便快速。
1.2 搭建虚拟环境
pip install virtualenv
pip install virtualenvwrapper
注意:安装时后台不要有vpn vpn vpn(重要的事情说三遍,这是血的教训)
1.3 创建虚拟环境
mkvirtualenv -p python3 虚拟环境名称
例 :
mkvirtualenv -p python3 py3_django
1.4 查看虚拟环境
workon 虚拟环境名称
例 :
workon py3_django
1.5 推出虚拟环境
deactivate
1.6 删除虚拟环境
rmvirtualenv 虚拟环境名称
例 :
先退出:deactivate
再删除:rmvirtualenv py3_django
django-admin startproject bookmanager
设置虚拟环境的python
pycharm创建工程
python manager.py startapp name
例:
————————————————————————
书籍信息
西游记 孙悟空 白骨精
三国演义 曹操 貂蝉
————————————————————————
书籍信息表
字段名 字段类型 字段说明
id AutoField 主键
name CharField 书名
————————————————————————
id name
1 西游记
2 三国演义
————————————————————————
人物信息表
字段名 字段类型 字段说明
id AutoField 主键
name CharField 人名
gender BooleanField 性别
book ForeignKey 外键
————————————————————————
id name gender book
1 孙悟空 False 1
2 白骨精 False 1
3 曹操 False 2
4 貂蝉 False 2
4.1 定义模型类
根据书籍结构设计模型类
(写在 book 下的 models.py 里)
class BookInfo(models.Model):
name = models.CharField(max_length=20, null=False)
根据人物表结构设计模型类
class PeopleInfo(models.Model):
name = models.CharField(max_length=20, null=False)
gender = models.BooleanField()
book = models.ForeignKey(BookInfo, on_delete=models.CASCADE)
4.2 注册子应用
(在book下的settings.py 里的 添加 book)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'book',
]
4.3创建一个数据库 bookdb
create database bookdb charset=utf8
4.4 在seyyings.py 修改mysql配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '',
'NAME': 'bookdb'
}
}
注意:里面的密码是自己mysql的密码
4.5 安装pip install pymysql
在终端 写入 pip install pymysql 安装
注意 要在 book 下 的 init.py 里添加
import pymysql
pymysql.install_as_MySQLdb()
终端 写入 python manage.py makemigrations
可能会出现报错
报错的话 去 operations.py 里
把 query = query.decode(errors="replace")里的
decode 改成 encode (强制修改)
在终端 写入
python manage.py migrate
然后在数据库里查看表
1.视图的作用
mvt view 处理前端发来的请求,处理逻辑 返回响应
2.如何定义函数视图
在 book 下的 views.py 文件 添加
from django.shortcuts import render
from django.http import HttpResponse
"""
主页视图
request 是前端发来的请求 封装到了这个对象里
"""
def index(request):
print("处理复杂逻辑1")
print("处理复杂逻辑2")
return HttpResponse("娄娄")
3…如何配置访问的路径
注意两个 urls 文件位置
在 book 下 新建一个 urls.py 文件 写入
from django.contrib import admin
from django.urls import path
from book.views import index
urlpatterns = [
path('index/', index),
]
在 bookmanager 下 的 urls.py 文件 写入
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('book.urls')),
]
4.访问测试
打开 网页测试 如果返回的结果是自己写的结果 就成功
(在 book 下的 views.py 文件 写返回的结果)
http://127.0.0.1:8000/index/
了解模板的作用 会写一个简单的模板
1.写模板 html文件
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主页title>
head>
<body>
<h1>
一级标题
h1>
<a href="http://www.baidu.com">baidua>
<a href="http://www.baidu.com">{{ text }}a>
body>
html>
在 TEMPLATES 里
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',
],
},
},
]
2.视图里面如何用模板去返回数据
from django.shortcuts import render
from django.http import HttpResponse
"""
主页视图
request 是前端发来的请求 封装到了这个对象里
"""
def index(request):
print("处理复杂逻辑1")
print("处理复杂逻辑2")
context = {"text": "今天台湾回来啦"}
return render(request, "book/index.html", context)
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主页title>
head>
<body>
<h1>
一级标题
h1>
<a href="http://www.baidu.com">baidua>
<a href="http://www.baidu.com">{{ text }}a>
body>
html>
`
## 3.查看结果
http://127.0.0.1:8000/index/
页面 会显示
Original: https://blog.csdn.net/lhblmd/article/details/121564312
Author: Lou…..
Title: Django
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/735090/
转载文章受原作者版权保护。转载请注明原作者出处!