真的不太好学啊!记录一下笔记,要不有的东西老要查!
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',
]
创建一个app
python manage.py startapp front
在__init__.py里面配置
import pymysql
pymysql.install_as_MySQLdb()
在settings.py里面初始化数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'book_manage',
'USER': 'root',
'PASSWORD': 'kouhz',
'HOSTNAME': '127.0.0.1',
'PORT': '3306'
}
}
把自己创建的app添加进apps
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'front',
]
在urls.py里面添加自己文件的路径
from django.urls import path
from front import views
urlpatterns = [
path('', views.index),
path('add_book/', views.add_book, name='add_book'),
path('book_detail/', views.book_detail, name='book_detail'),
]
在front里的views增加业务代码
from django.shortcuts import render, redirect, reverse
from django.db import connection
##操作数据库需要corsor和db connection
def get_cursor():
return connection.cursor()
def index(request):
cursor = get_cursor()
cursor.execute("select id,name,author from book")
books = cursor.fetchall()
return render(request, 'index.html', context={"books":books})
def add_book(request):
pass
def book_detail(request, book_id):
pass
在templates里面增加html页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<nav>
<ul class="nav">
<li><a href="/">首页</a></li>
<li><a href="{% url 'add_book' %}">新书上架</a></li>
</ul>
</nav>
</body>
</html>
这是页面样式
css初始化/在front里面闯将static在里面新建front文件夹(和app名字保持一致),再添加css文件
index.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{% static 'front/index.css' %}">
</head>
<body>
<nav>
<ul class="nav">
<li><a href="/">首页</a></li>
<li><a href="{% url 'add_book' %}">新书上架</a></li>
</ul>
</nav>
</body>
</html>
index.css
/* *代表所有标签
外边距位0
内边距0
不适用浏览器提供的默认样式
*/
*{
margin: 0;
padding: 0;
}
/*背景颜色 高度 默认每一个显示一行,使用overflow让显示内容浮动*/
.nav{
background: #3a3a3a;
heigth: 65px;
overflow: hidden;
}
/*nva 里面的 li 标签左浮动,list-style :去掉点*/
/*margin:上下0 左右20*/
/*字体放在中间,设置行高,和外面的nav一样高*/
.nav li{
float: left;
list-style: none;
margin: 0 20px;
line-height: 65px;
}
/*nav 的 li 标签 的 a 设置为白色,取消下划线*/
.nav li a{
color:#fff;
text-decoration: none;
}
/*鼠标放置在a上面的颜色*/
.nav li a:hover{
color:pink;
}