Django静态文件配置 request对象 Django操作MySQL
Django中的文件介绍

render、HttpResponse和redirect
当我们想起手写一个项目,创建好应用并且注册之后,在urls.py文件先导入app文件夹下migrations下的views.py文件
from app01 import views
在urls.py下urlpatterns添加路由与视图函数的对应关系
url(r'^bilibili/', views.bilibili),
url(r'login', views.login),
url(r'^index/', views.index),
url(r'^home/', views.home_page)
这样我们就可以在views视图里面写视图函数了,Django在views.py文件里预先导入了render模块
render
render返回的是一个HTML文件,render方法需要传两个参数request和templates_name
def login(request):
return render(request, 'login.html')
HttpResponse
render返回的是字符串
def index(request):
return HttpResponse('HELLO DJANGO!')
redirect
redirect 重定向,输入网址会跳转到该网址,既可以写其他网址,也可以写我们自己创建的html页面。
def bilibili(request):
return redirect('https://www.bilibili.com')
def index(request):
return redirect('/login/')
# 写自己创建的只需要写后缀就可以了
需要注意的是所有视图函数都需要传request参数,request表示的是请求相关的所有数据对象。
静态文件配置
静态文件通常是指不是由服务器生成的文件,例如脚本,CSS文件,图像等,但是必须在请求时发送给浏览器。
我们通常将HTML文件默认都放在templates文件夹下,将网站所需要的静态文件默认都放在static文件夹下。django默认不会自动创建static文件夹,需要手动创建。
需要在settings.py文件末尾将静态文件接口开放
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
# 需手动配置
在HTML引入静态文件的两种方式:
{% load static %}
<link rel="stylesheet" href="{% static "bootstrap-5.1.0-dist/css/bootstrap.min.css" %}">
# 这种方式可以动态解析令牌,无论后面怎么改都可以访问
或者:
<link rel="stylesheet" href="/script/css/bootstrap.min.css">
注意:
STATIC_URL = '/static/'
这里的'/static/'表示的是类似于访问静态文件的令牌,如果想要访问静态文件就必须以static开头,当令牌匹配之后才回去STATICFILES_DIRS
列表里从上往下依次查找。都找不到就会报错。
request对象
####### settings.py中 前期先把第四行注释掉,不验证csrf #####
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
request.method
request.method会返回请求方式,并且是全大写的字符串形式。
# 那么我们就可以通过请求方式做逻辑处理
def login():
if request.method == 'POST':
return HttpResponse('get it')
# return 只会执行一个return
return render(request, 'login.html')
request.POST
request.POST接收post请求数据,会返回一个类似于字典一样的数据,这时候我们可以通过get方法取到里面的值。
# POST方法返回的值 <QueryDict: {'username': ['egon'], 'password': ['123']}> <class 'django.http.request.QueryDict'>
def login():
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
# 这里的键是在前端HTML文件中写好的
需要注意的是get方法取到的value是字符串,并不是看起来像列表的东西,而且get方法只能取到中括号里面最后一个值,想取到所有的值应该用getlist方法,取到的就是列表了。
Django连接MySQL
在settings.py文件里面找到DATABASES配置
# 默认是django自带的sqllite3小型数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
这时候我们连接到MySQL第一步需要更改它的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': database01, # name对应的是库的名字
'USER':'root'
'PASSWORD':'123'
'HOST':'127.0.0.1'
'PORT':3306,
'CHARSET':'utf8'
}
}
# 第一步之后,如果启动django是会报错的,
# 这是因为django默认用的是mysqldb模块连接MySQL但是该模块兼容性不好
# 需要手动改为pymsql模块进行连接
第二步需要进行代码声明
# 在项目名下的init或者任意的应用名下的init文件中书写以下代码都可以
import pymysql
pymysql.install_as_MySQLdb()
Django ORM
Django 模型使用自带的 ORM。
对象关系映射(Object Relational Mapping,简称 ORM )用于实现面向对象编程语言里不同类型系统的数据之间的转换。
ORM 在业务逻辑层和数据库层之间充当了桥梁的作用。
ORM 是通过使用描述对象和数据库之间的映射的元数据,将程序中的对象自动持久化到数据库中。
ORM本质上还是执行的SQL语句。

创建 MySQL 数据库( ORM 无法操作到数据库级别,只能操作到数据表)语法。
创建表(创建类)
# 1.先去model.py中书写一个类
class User(models.Model):
# id int primary_key auto_increment
id = models.AutoField(primary_key=True)
# username varchar(32)
username = models.CharField(max_length=32)
# password = int
password = models.IntegerField()
# 2.数据库迁移命令(每次改变了跟数据相关的代码)
python3 manage.py makemigrations # 生成迁移记录,不操作数据库
python3 manage.py migrate # 将操作真正的同步到数据库
由于一张表中必须要有一个主键字段 并且一般情况下都叫id字段,所以当我们不定义主键字段的时候,ORM会自动创建一个名为id的主键字段。
Charfield必须要指定max_length参数,不指定会报错
verbose_name该参数是所有字段都有的,就是用来对该字段的解释说明,类似于注释
字段的增删改查
字段的增加
1、可以在终端内直接给出默认值
2、设置该字段为空
null=True
3、给出该字段的默认值
default='male'
字段的修改
直接修改代码然后执行数据库迁移的命令,相当于把之前的表覆盖。
字段的删除
对应的字段直接注释掉,再执行数据库迁移的命令。需要注意的是执行完毕之后字段对应的数据也没有了
Django静态文件配置 request对象 Django操作MySQL的更多相关文章
- Django静态文件配置-request方法-ORM简介-字段的增删改查
app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 ...
- 55 Django静态文件配置
一.Django静态文件配置 1.项目文件夹,新建一个文件夹statics 文件夹 2.在配置文件settings.py中,配置: 文件中有第句: STATIC_URL = '/static/'#静态 ...
- django静态文件配置
开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等 2. 确保settings.py中的INSTA ...
- Django——静态文件配置
本文目的 最近用django开发项目,发现django的静态文件(js,css和img等)配置比较麻烦,开发环境和生产环境的配置还不一样,这里记录一下,作为备忘.我当前使用的版本是django v1. ...
- Django 静态文件配置 (Nginx)
初学Django,在访问静态文件时候遇到很多误区,一直配置不成功,在此记录一下. Django静态文件访问分为两种:一种是Debug模式下,测试开发网站时对静态文件的访问,一种是实际生产环境中对静态文 ...
- django静态文件配置和使用
一.首先需要了解的知识点是: 1.出于对效率和安全的考虑,django管理静态文件的功能仅限于在开发阶段的debug模式下使用,且需要在配置文件的INSTALLED_APPS中加入django.con ...
- django 静态文件配置
配置静态文件 在settings.py中尾部添加一下内容 STATICFILES_DIRS = [ #路径 BASE_DIR:项目文件根目录 os.path.join(BASE_DIR,'static ...
- 使用nginx部署Django静态文件配置
首先,我们配置静态文件,要在setting.py里面加入如下几行代码: # settings.py # the settings above # STATIC SETTINGS STATIC_URL ...
- Django 静态文件配置(static files)
Django version: 1.9 Python versrion: 3.5.2 这几天Django配置静态文件(本例是要加载index.css), 总是不对,最后终于试对了,这里记录下,方便以后 ...
随机推荐
- ios多线程开发基础
多线程编程:下载数据时,开辟子线程,减少阻塞时间,和主线程并发运行,提升用户体验 1.Thread 1>新建Thread对象,带一selector方法,调用start方法,开启子线程 2> ...
- 阿里云低延时直播 RTS 能力升级 让直播推流效果更佳
行业背景 直播技术飞速发展让各个行业的用户体验呈现多样化和个性化,不同业务场景下创新实践满足大众对于音视频互动体验和参与的高标准要求.历经2020年初的巨变之后,以视频.游戏.电商.教育为主的互联网经 ...
- CF1539D PriceFixed[题解]
PriceFixed 题目大意 市场上又 \(n\) 种商品,每种商品的价格都是 \(2\) .对于第 \(i\) 种商品 \(a_i\) 件.对于商品 \(i\) 给出一个值 \(b_i\) ,如果 ...
- Django基础007--filter&tag
1.Django自带的过滤器filter def index(request): print('index...........') navs = '今天天气真好fdsfds!!!' title='& ...
- Linux必备命令 - 常用命令集
默认进入系统,我们会看到这样的字符: [root@localhost ~]#,其中#代表当前是root用户登录,如果是$表示当前为普通用户.cd 命令 cd /home :解析:进入/home目录 ...
- VS2013产品密钥
VS2013 产品密钥 – 所有版本 Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio ...
- C语言:变量定义
变量定义:用于为变量分配存储空间,还可为变量指定初始值.程序中,变量有且仅有一个定义.变量声明:用于向程序表明变量的类型和名字.定义也是声明,extern声明不是定义 定义也是声明:当定义变量时我们声 ...
- 雪花算法(SnowFlake)Java实现
分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种. 算法原理 SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1bit,不用,因为二 ...
- oracle 密码详解以及破解
参考的相关资料等: https://docs.oracle.com/en/database/oracle/oracle-database/18/spmsu/finding-and-resetting- ...
- 「干货」面试官问我如何快速搜索10万个矩形?——我说RBush
「干货」面试官问我如何快速搜索10万个矩形?--我说RBUSH 前言 亲爱的coder们,我又来了,一个喜欢图形的程序员,前几篇文章一直都在教大家怎么画地图.画折线图.画烟花,难道图形就是这样嘛,当 ...