Django项目开发环境搭建登录页面笔记1

举报
Yuchuan 发表于 2020/07/12 11:16:14 2020/07/12
【摘要】 Python Django 项目的实战笔记。

开发步骤:

1、创建Django项目存放的目录

$ mkdir DjangoDemoPro006

2、进入目录

$ cd DjangoDemoPro006

3、使用django-admin创建Django项目

$ django-admin startproject SmartIoTShopPro

4、进入django项目目录

$ cd SmartIoTShopPro/

5、在Django项目中创建app应用程序

Django中的APP:

        project -->项目(例如一所大学)

        APP --> 应用 (这所大学中的每一个二级学院)

作用:

        方便我们在一个大的Django项目中管理实现不同的业务功能。

创建APP的命令:

$ python3 manage.py startapp minapp

6、在Django项目中创建存放html文件及静态文件的templates目录及static目录

$ mkdir templates
$ mkdir static

7、使用PyCharm IDE打开Django项目

8、配置Settings.py文件

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'minapp.apps.MinappConfig'
]

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',
]

templates (存放HTML文件的配置) -->告诉Django去哪儿找我的HTML文件

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        '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',
            ],
        },
    },
]

静态文件(CSS、JS、图片)

# 静态文件保存目录的别名
TATIC_URL = '/static/'

# 静态文件夹的位置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

9、Terminal运行项目,check所配置是否成功。

Django项目的启动:

1)、命令行启动

        在项目的跟目录下(也就是有manage.py的那个目录)运行。

        python3 manage.py runserver IP:Port -->在指定的IP 和端口启动

        python3 manage.py runserver Port --> 在指定的端口启动

        python3 manage.py runserver -->默认在本机的8000端口启动

2)、PyCharm启动

        点绿色的小三角,直接启动Django项目(前提是小三角左边是你的Django项目名)

$ python3 manage.py runserver 0.0.0.0:8000

10、添加登录页面功能

1)、原理:

        Python web框架的本质

        a、收发socket消息 --> 安装HTTP协议消息格式去解析消息。

        b、路径和要执行的函数的对应关系 --> 主要业务逻辑

        c、字符串替换 --> 模板(特殊符号-->数据)

2)、一个完整的请求流程:

        a、启动服务器,等待客户端(用户的浏览器)来连接

        b、在浏览器地址栏输入URL,与服务器端建立连接,浏览器发送请求。

        c、服务器端收到请求消息,解析请求消息,根据路劲和函数的对应关系,找到将要执行的函数

        d、执行函数,打开html 文件,进行字符串的替换,得到最终要返回的html页面的内容。

        e、按照HTTP协议的消息格式要求,把HTML内容回复给用户浏览器(发送响应)

        f、浏览器收到响应的消息之后,按照html的规则渲染页面。

        g、关闭连接。

form表单往后端提交数据注意:

1)、所有获取用户输入的标签都应该放在form里面,并且必须要有name属性。

2)、action属性控制往哪儿提交,method一般都设置成post。

3)、提交按钮必须是type=submit,不能是别的类型。

GET请求和POST请求

        GET请求:

                a、浏览器请求一个页面。

                b、搜索引擎检索关键字的时候。

        POST请求:

                a、浏览器向服务端提交数据,例如:登录/注册等

数据库ORM

import pymysql

pymysql.connect()

1、不同的程序员写的SQL水平参差不齐

2、执行效率也参差不齐

python语法 -->自动翻译 --> SQL语句

ORM:

        优点:

                1、简单,不用自己写SQL语句

                2、开发效率高

        缺点:

                1、记忆这个特色的语法

                2、相对于大神写的SQL语句,执行的效率有些差距

ORM的关系:

        类        -->数据表

        对象    -->数据行

        属性    -->字段

ORM能做的事:

        1、操作数据表 -->创建表/删除表/修改表

             操作models.py 里面的类

        2、操作数据行 -->数据的增删改查

        不能创建数据库,自己手动创建数据库

使用Django的ORM详细步骤:

        1、自己手动创建数据库

                create database 数据库名;

        2、在Django项目中设置连接数据库的相关配置(告诉Django连接那一个数据库)

                数据库相关的配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': 'us-cdbr-east-02.cleardb.com',
        'PORT': 3306,
        'USER': 'bce2121ed982cf',
        'PASSWORD': '8a73e1cc',
        'NAME': 'heroku_6720b733d3d8bdf',
    }
}

        3、告诉Django用pymysql 代替默认的MySQLDB连接MySQL数据库

            在项目/__init__.py 文件中,输入

import pymysql
# 告诉Django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()

        4、在minapps下面的models.py文件中定义一个类,这个类必须继承models.Model

from django.db import models
# Create your models here.
class UserInfo(models.Model):
    id = models.AutoField(primary_key=True)  # 创建一个自增的主键字段
    name = models.CharField(null=False, max_length=32)  # 创建一个varchar(20)类型的不能为空的字段
    email = models.CharField(null=False, max_length=50)

        5、执行两个命令:

$ python3 manage.py makemigrations

                

$ python3 manage.py migrate

检查数据库ORM是否已经执行成功

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。