当前位置: 首页 > news >正文

wordpress 系统安装/武汉网站优化公司

wordpress 系统安装,武汉网站优化公司,b2c是什么意思的,免费商城网站系统文章目录一、 模板文件配置二、 静态文件配置1. settings.py 静态文件配置2. 静态文件接口前缀动态解析3. form表单知识回顾三、 request对象方法初识四、 pycharm链接数据库五、 django链接数据库(MySQL)文件配置1.在settings.py配置文件修改配置2.在项…

文章目录

  • 一、 模板文件配置
  • 二、 静态文件配置
    • 1. settings.py 静态文件配置
    • 2. 静态文件接口前缀动态解析
    • 3. form表单知识回顾
  • 三、 request对象方法初识
  • 四、 pycharm链接数据库
  • 五、 django链接数据库(MySQL)文件配置
    • 1.在settings.py配置文件修改配置
    • 2.在项目文件夹或者应用文件夹内的__init__.py文件中书写固定的代码
  • 六、 django ORM简介
    • ORM实操
      • 1. 模型类需要写在应用下的models.py文件中
      • 2. 数据库迁移命令(***非常重要***)
      • 3. 针对主键字段
      • 4. 字段的增删改查
      • 5. 数据的增删改查
  • 七、 ORM创建外键关系
    • 1.表与表之间的关系
    • 2.表关系的判断
  • 八、 django请求生命周期流程图
    • 1、Django请求的生命周期的含义
    • 2、Django请求的生命周期图解及流程


一、 模板文件配置

TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, "template")],  # template文件夹位置'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',],},},
]

二、 静态文件配置

我们将html文件默认都放在templates文件夹下
将网站所使用的静态文件默认都放在static下

静态文件
写好之后不会自动动态改变的文件资源,比如我们写好的css文件、js文件、图片文件、第三方框架文件,我们默认将所有的静态文件都放在一个static文件夹内,

django是不会自动创建static文件夹的,需要我们自己在的django目录下手动创建该文件夹
一般情况下我们在 static文件夹内还会做进一步的划分处理,拿来就可以直接使用:

static├─ bootstrap 前端已经写好了的能够直接调用的文件├─  js  写好的js文件├─  css 写好的css文件├─  img 用到的img文件└─  其他第三方文件资源

之所以在浏览器中输入url 能够看到对应的资源,是因为开发者早已提前在后端开设了该资源的访问接口
如果访问不到资源,说明后端没有开设该资源的接口

http://127.0.0.1:8000/static/bootstrap-3.3.7-dist/css/bootstrap.min.css

1. settings.py 静态文件配置

# 如果想要访问静态文件就必须以static开头
STATIC_URL = '/static/'  # 接口前缀 类似于访问静态文件的令牌
"""
例如有此路径:
<script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
/static/ 前面这个就是接口前缀
bootstrap-3.3.7-dist/js/bootstrap.min.js 后面的就是路径
书写了接口前缀之后 就拥有了访问下列列表中所有文件夹内部资源的权限
然后会以从上往下的顺序在列表里面依次查找,直到拿到路径返回给页面
都没有才会报错"""
# 静态文件配置
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static') # 这个static就是真正的静态文件夹路径os.path.join(BASE_DIR, 'static1')os.path.join(BASE_DIR, 'static2')
]

2. 静态文件接口前缀动态解析

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>动态解析</title>{% load static %}<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}"><script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>
</head>
<body></body>
</html>

3. form表单知识回顾

form表单默认使用的是get请求数据

form表单action参数:控制后端提交的路径

  1. 不写:默认朝当前所在的url(页面地址)提交数据
  2. 全写:指名道姓 https://www.baidu.com
  3. 只写后缀 :/index/
    form表单method参数:默认是get请求,可以改成post请求

在前期使用django提交post请求的时候需要先去配置文件中注释掉一行代码
在这里插入图片描述

三、 request对象方法初识

request.method  # 返回字符串<cass'str'>获取当前请求的请求方法,并且结果是一个纯大写的字符串类型request.POST  # 直接看成是字典即可获取用户提交post请求过来的基本数据(不包含文件)request.POST.get() get方法只获取列表最后一个元素request.POST.getlist() getlist方法会直接获取整个列表,不管里面有几个元素request,GET # 直接看成是字典即可获取用户提交的get请求数据(url问号后面的数据)request.GET.get()get方法只获取列表最后一个元素request.GET.getlist()getlist方法会直接获取整个列表,不管里面有几个元素request.FILES  # 直接看成是字典即可获取用户上传的文件数据  request.FILES.get()get方法只获取列表最后一个元素request.FILES.getlist()getlist方法会直接获取整个列表,不管里面有几个元素   
'''
get请求携带的数据是有大小限制的大概好像只有4KB左右
而post请求则没有限制form表单如果需要携带文件数据 那么要添加参数<form action="" method="post" enctype="multipart/form-data">'''

视图函数书写格式

# 书写格式(层级复杂不推荐)
def login(request):"""get请求和post请求应该有不同的处理机制:param request:请求相关的数据对象里面有很多简易的方法:return:"""print(type( request.method)) # 返回请求方式并且是纯大写的字符串类型<class str>if request.method == 'GET':# 返回给浏览器一个登陆界面return render(request,'login.html')elif request.method == 'POST':return Httpresponse("收到了宝贝")# 标准书写格式(层级精简推荐)    
def login(request):if request.method == 'POST':return Httpresponse("收到了宝贝")return render(request,'login.html')

四、 pycharm链接数据库

Database工具栏
在这里插入图片描述
下载对应驱动即可
在这里插入图片描述

五、 django链接数据库(MySQL)文件配置

1.在settings.py配置文件修改配置

"""django默认使用自带的sqlite3"""
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'db666',  # 数据库名称 一定要事先创建好才能指定'HOST':'127.0.0.1', # 数据库IP,暂用本地回环地址'PORT':3306,     # 数据库端口'USER':'root',   # 数据库用户名'PASSWORD':'123', # 数据库密码'CHARSET':'utf8'  # 指定字符编码}
}	

2.在项目文件夹或者应用文件夹内的__init__.py文件中书写固定的代码

django默认用的是mysqldb模块链接MySQL
但是该模块的兼容性不好,需要手动改为用pymysql模块链接

import pymysql
pymysql.install_as_MySQLdb()

六、 django ORM简介

"""
ORM:对象关系映射
作用:目的就是为了能够让不懂SQL语句的人通过python面向对象的知识点也能够轻松自如的操作数据库
缺陷:封装程度太高,有时候sql语句的效率偏低,需要自己写SQL语句
"""---------------->>> 表
对象 --------------->>> 表里面的数据
对象点属性 ---------->>> 字段对应的值

ORM实操

1. 模型类需要写在应用下的models.py文件中

class User(models.Model):        # id int primary key auto_incrementid = models.AutoField(primary_key=True)# name varchar(32)name = models.CharField(max_length=32)  # CharField必须要加max_length参数,不加报错# age intage = models.IntegerField()

2. 数据库迁移命令(非常重要)

********************************************************************
*    1.将数据库修改操作先记录到小本本上(对应应用下的migrations文件夹)    
*		  python3 manage.py makemigrations                 
*    								 
*    2.真正的执行数据库迁移操作                                      
*		  python3 manage.py migrate    	                  
*  # 只要动了models.py中跟数据库相关的代码就必须重新执行上述两条命令   
********************************************************************

首次执行数据库迁移命令会发生的事儿
在这里插入图片描述
数据库同步命令(了解)

"""
数据库里面已经有一些表,我们如何通过django orm操作?1.照着数据库表字段自己在models.py数据需要自己二次同步2.django提供的反向同步
"""
1.先执行数据库迁移命令 完成链接python manage.py makemigrations
2.查看代码python manage.py inspectdbclass Userinfo(models.Model):id = models.IntegerField(blank=True, null=True)name = models.CharField(max_length=32, blank=True, null=True)pwd = models.IntegerField(blank=True, null=True)class Meta:managed = Falsedb_table = 'userinfo'

3. 针对主键字段

class User1(models.Model):# 由于一张表中必须要有一个主键字段,并且一般情况下都叫id字段# 如果你不指定主键 那么orm会自动帮你创建一个名为id的主键字段# 如果你想让主键字段名不叫id 叫uid、sid、pid等则需要自己手动指定id = models.AutoField(primary_key=True,verbose_name='主键')

4. 字段的增删改查

# 字段的增加
1.可以在终端内直接给出默认值
2.该字段可以为空(null)pwd = models.IntegerField('密码',null=True)  
3.直接给字段设置默认值(default)is_delete = models.IntegerField(default=0)  # 字段的修改
直接修改代码,然后执行数据库迁移的两条命令即可# 字段的删除
直接注释对应的字段,然后执行数据库迁移的两条命令即可
执行完毕之后字段对应的数据也都没有了
"""
在操作modles.py的时候一定要细心千万不要手误注释掉重要的字段执行迁移命令之前一定要检查下自己写的代码建议:离开你的计算机之后一定要锁屏
"""

5. 数据的增删改查

from app01 import models# 1.查询数据
# select * from user where name=username;
user_obj = models.User.objects.filter(name=username).first()
"""
user_obj = models.User.objects.filter(username=username)
返回值你先看成是列表套数据对象的格式
它也支持索引取值 切片操作 但是不支持负数索引
它也不推荐你使用索引的方式取值,推荐用.first()filter括号内可以携带多个参数 参数与参数之间默认是and关系
你可以把filter联想成where记忆
"""# 2.查询所有的数据
# select * from user;
user_obj = models.User.objects.all()  # [obj1,obj2,obj3,obj4]# 列表套数据对象的格式# 3.添加数据
# insert into user(name,pwd) values(username,password);
# 第一种增加
res = models.User.objects.create(name=username,pwd=password)
# 返回值就是当前被创建的对象本身
# 第二种增加
user_obj = models.User(username=username,password=password)
user_obj.save() # 保存数据# 4.修改数据
# 第一种方法(批量更新,推荐)
models.User.objects.filter(id=edit_id).update(name=username,pwd=password)
# 第二种方法
edit_obj.name = username
edit_obj.pwd = password
edit_obj.save()# 5.删除数据
models.User.objects.filter(id=delete_id).delete()

七、 ORM创建外键关系

1.表与表之间的关系

一对多
一对一
多对多

2.表关系的判断

换位思考
ORM针对外键字段的创建位置
一对多:推荐建在多的一方

一对一:建在任何一方都可以,但是推荐建在查询频率较高的表中

多对多:

  1. 自己建表
  2. 建在任何一方都可以,但是推荐建在查询频率较高的表中
from django.db import modelsclass Book(models.Model):title = models.CharField(max_length=32)price = models.DecimalField(max_digits=8,decimal_places=2)  # 总共8位 小数占2位# 出版社外键publish = models.ForeignKey(to='Publish')  # 默认就是主键"""自动在外键字段后面加_id后缀"""# 作者外键authors = models.ManyToManyField(to='Author')  # 自动帮你创建书籍和作者的第三张表"""虚拟字段不会在表中实例化出来  而是告诉ORM创建第三张关系表"""class Publish(models.Model):title = models.CharField(max_length=32)email = models.EmailField()class Author(models.Model):name = models.CharField(max_length=32)age = models.IntegerField()author_detail = models.OneToOneField(to='AuthorDetail')"""自动在外键字段后面加_id后缀"""class AuthorDetail(models.Model):phone = models.BigIntegerField()addr = models.CharField(max_length=128)

八、 django请求生命周期流程图

1、Django请求的生命周期的含义

Django请求的生命周期是指:当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情。

2、Django请求的生命周期图解及流程

在这里插入图片描述

http://www.jmfq.cn/news/4861369.html

相关文章:

  • 宜昌网站建设平台/泰安网站建设
  • 自学python的网站/搜索引擎优化英文简称为
  • 网站数据库怎么做同步吗/2345电脑版网址导航
  • 可以做动感影集的网站/企业网站管理系统源码
  • 购买一个域名能建几个网站/百度有哪些app产品
  • 网站导航的交互怎么做/营销方案100例
  • 计算机网站php设计代做/汕头seo托管
  • 怎么在jsp网站做验证码/宣传推广
  • 网站建设的价值是什么意思/郑州seo代理商
  • 贪玩传奇手游官方网站/中国疫情今天最新消息
  • 珠海免费景点/软媒win7优化大师
  • 共享网站的详细规划/怎么注册一个网站
  • 地方门户网站运营/北京seo顾问外包
  • 廊坊自助建站设计/公司官网搭建
  • 织梦网站名称修改/线上营销方案
  • 爱站网seo培训/seo网站推广培训
  • 当当网的网站建设目标是/网站营销
  • 东莞做网站it s/网络营销成功案例介绍
  • 凡科的网站做seo比较难/淘宝关键词搜索
  • 武汉做网站seo/百度网盘客服人工电话95188
  • 菏泽做企业网站/百度网站排名优化价格
  • 网站开发主流/杭州龙席网络seo
  • b2c电子商务网站源码/廊坊百度快照优化哪家服务好
  • 为离职员工做的网站/app拉新平台哪个好佣金高
  • 重庆网站建设排名/seo营销推广
  • 临漳seo整站排名/杭州百度推广
  • 山西建设官方网站/找个免费的网站
  • axure怎么做优酷网站/企业网站设计欣赏
  • 用花生做网站/聚名网域名注册
  • 南京 网站制作公司哪家好/潍坊网站开发公司