Hzangyao

导航

django静态文件,form表单提交数据,连接mysql,操作ORM

静态文件配置

1. 什么是静态文件
	css
    js
    img
    ...
2. 静态文件的存储位置
'''
	我们在创建Django项目的时候,没有生成static目录,我们会把静态文件存储在static目录下,需要我们手动创建static文件夹,不管你是通过cmd还是pycharm,都要手动创建,在项目根目录下创建。
'''

3. static目录创建出来之后,我们还可以根据功能进行划分目录
	static
    	css
        js
        img
        ...
4. 配置文件配路径
	# 配置文件的路径
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
5. 动态引入
	{% load static %}
    <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
    <script src="{% static 'js/jquery.min.js' %}"></script>
    <script src="{% static 'js/bootstrap.min.js' %}"></script>

form表单实现登录功能

<form action="" method="post">
1. 什么都不写:当前地址提交
2. 写全:
3. 写后缀:/login/

# 使用form表单提交post请求的时候,暂时先去配置文件注释如下代码
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',
]

print(request.method, type(request.method)) # GET <class 'str'>

    if request.method == 'POST':
        # 如果条件成立,则说明是post请求
        # 2. 如何接收post请求的数据
        # <QueryDict: {'username': [''], 'password': [''], 'hobby': ['1', '2', '3']}>
        print(request.POST) # <QueryDict: {'username': ['ly'], 'password': ['123']}>
        print(request.POST.get('username')) # <QueryDict: {'username': ['ly'], 'password': ['123']}>
        print(request.POST.get('password')) # <QueryDict: {'username': ['ly'], 'password': ['123']}>
        # get只取列表中的最后一个值
        print(request.POST.get('hobby')) # <QueryDict: {'username': ['ly'], 'password': ['123']}>
        print(request.POST.getlist('hobby')) # <QueryDict: {'username': ['ly'], 'password': ['123']}>
        
# 获取get请求的数据
request.GET  # 字典格式
request.GET.get('username')
request.GET.getlist('hobby')


django连接MySQL

# django默认的连接MySQL的模块是mysqldb,这个模块我们没装,另外,该模块兼容性不够好,所以,我们不使用这个模块


我们自己手动修改mysqldb模块为pymysql
1. 安装pymysql
pip3 install pymysql

2.在配置文件中设置为mysql
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db2',
        'USER':'root',
        'PASSWORD':'root',
        'HOST':'127.0.0.1',
        'PORT':3306,
        'CHARSET':'utf8'

3. 如何使用
在任意的应用下的__init__.py文件中,加入如下代码进行更改
"""
import pymysql
pymysql.install_as_MySQLdb()
"""

3. 是在python36以下才加以上两句代码,
4. 还有一个类似的模块:mysqlclient
	# 如果使用mysqlclient模块,不管是python的哪个版本,都不需要在加以上两句代码,但是呢,这个模块刚出没多久,最大的问题是,这个模块很难装上。

Django操作ORM

1. 什么是ORM?
	# 关系映射对象
    orm不但在python中有,其他语言中也有
2. 特点:
	# 在操作数据库的时候,不需要在写原生SQL语句了。
    select * from table # 
3. ORM的书写位置
	在应用下的models.py中
4. 如何使用?
	'''在使用orm的时候,必须先创建好库'''
	表名		>>>    类名
    记录		>>>    对象
    字段		>>>    类属性
5. 如何创建一张表?
	from django.db import models

# Create your models here.
'''在写ORM的时候,类一定要继承models.Model'''
class UserInfo(models.Model):
    # id int primary key auto_increment
    id = models.AutoField(primary_key=True)  # 对象

    # username varchar(32)
    # username char(32)

    username = models.CharField(max_length=32)
    password = models.CharField(max_length=32)

6. 一定要执行迁移数据库
	# 执行下面两行代码来生成数据表
    '''
    	python3 manage.py makemigrations  # 只是生成迁移记录
    	python3 manage.py migrate         # 才是真正的生成数据
    '''

posted on 2022-03-17 20:09  Hzangyao  阅读(138)  评论(0编辑  收藏  举报