三个方法
HttpResponse
render
redirect
frpm django.shortcuts import render,HttpResponse,redirect
HttpResponse 返回字符串类型的数据
render 返回HTML页面并且支持传值
redirect 重定向
SECRET_KEY = 'w1iqa7+d17hb5=t8p640lxp8%nl3)t4fcmjk+@og8(4n*&-xmr'
# 加密的数据,盐
DEBUG = True #调试模式,改为False,页面不会报错
ALLOWED_HOSTS = [‘*’]
INSTALLED_APPS:"""注册应用"""
ROOT_URLCONF:路径,写的路由就去这个路径去寻找
TEMPLATES: 模版
WSGI_APPLICATION:wsigref----上线之后uwigaref
DATABASES:关于mysql数据库
AUTH_PASSWORD_VALIDATORS:密码的认校验
LANGUAGE_CODE:语言---修改中文zh-hanzi
TIME_ZONE = 'Asia/Shanghai'市区
静态文件:
类似于HTML文件。css文件,js、文件,图片或第三方框架
总的来说就是可以直接拿来用的都是静态文件
静态文件存在Django框架中的static文件夹中,但是默认情况下是没有这个文件夹的,需要我们手动去创建该文件夹static
静态的HTML一般放在templaes下
Title
登录页面
使用本地配置文件
"""这个配置是访问静态文件的令牌"""
STATIC_URL = '/dasdasdasdas/'
"""其实就是static文件夹的路径"""
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
动态解析:{% load static %}
{{ }}
Title
{% load static %}
注册页面
post提交表单,前期先把下面的代码注释掉
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
取出POST请求的数据里的值
可以直接使用字典get取值
def login(request):
print(request.method, type(request.method))
if request.method == "POST":
print(request.POST.get('usernmae')) # 以post请求的表单数据
return render(request, 'login.html')
需要取出所有的值时,可以使用getlist取值
print(request.GET)
print(request.GET.get('a'))
print(request.GET.get('b'))
print(request.GET.get('c'))
print(request.GET.getlist('c'))
三个位置查找数据库相关
1.右侧上方database
2.左下方database
3.配置里面的plugins插件搜索安装
注意:
都没有再没有卸载pycharm重新装
连接成功
Django自带的sqlite3是一个小型的数据库,功能比较少,主要是用于本地测试。实际项目都会替换它的
1.修改配置文件中数据库设置成django连接MySQL
2.手动改动将默认mysqldb改为pymysql
django默认用的是mysqldb模块链接MySQL, 但是该模块的兼容性不好 需要手动改为用pymysql链接,需要指定模块
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'NAME': 'db5',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '12345',
'CHARSET': 'utf8',
}
}
2.1 django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
import pymysql
pymysql.install_as_MySQLdb()
orm:对象映射模型
在Django中操作数据库时,就不在用sql语句了,而是使用面向对象中的语法来操作
缺点:代码封装的程序太高,导致执行效率下降。
类名;就是sql当中的表名
对象:就是一条记录
属性:就是代表一个字段
我们的orm在models.py文件中编写
from django.db import models
class Userinfo(models.Model): # 类似与表名
username = models.CharField(max_length=32)
# 类似于usernmae varcher(32)
password = models.CharField(max_length=32)
输入迁移:python manage.py makemigrations,此时,还不足以创建,只是生成迁移的记录
继续输入 python manage.py migrate,这样就创建完毕了
我们打开navicat查看
这样一个完整的使用Django创建数据库就完成了
增加:直接在下面接着创建即可
from django.db import models
class Userinfo(models.Model): # 类似与表名
username = models.CharField(max_length=32, verbose_name='用户名')
# 类似于usernmae varcher(32)
password = models.CharField(max_length=32, verbose_name='密码')
salary = models.IntegerField(verbose_name='价格', default=0)
删除:
直接删除就行
from django.db import models
class Userinfo(models.Model): # 类似与表名
username = models.CharField(max_length=32, verbose_name='用户名')
# 类似于usernmae varcher(32)
password = models.CharField(max_length=32, verbose_name='密码')
修改:直接修改
from django.db import models
class Userinfo(models.Model): # 类似与表名
username = models.CharField(max_length=32, verbose_name='用户名')
# 类似于usernmae varcher(32)
password = models.CharField(max_length=32, verbose_name='密码')
salary12 = models.IntegerField(verbose_name='价格', default=0)
查看:使用navicat查看即可
注意,每次修改之后必须要在
terminal中重新输入makemigrations和migrate即可