zoukankan      html  css  js  c++  java
  • Django框架(二)-- 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get

    一、app

    在Django中,APP可以用以下类比

    大学 --------------------项目
        计算机学院------------app01
        土木学院 ------------ app02

    1、app创建

    方式一:在terminate命令行创建: python manage.py startapp app01(app名字)
            亦可:pycharm菜单栏中 Tools --> run manage.py task ,然后在terminate输入命令 startapp app01(app名字)
    方式二:在创建项目的时候,直接创建app

    2、app注册

    • 方式一创建app
    # 在配置文件的 settings.py 中的 INSTALLED_APPS 中,添加
    'app01'   # app名字
    或者
    'app01.apps.App01Config'

    二、模板配置

    1、创建模板文件

    在Django中创建一个templates 文件夹,用于存放前台的html文件

    2、模板注册

    # 在配置文件的settings.py中的 TEMPLATES 中配置路径
    'DIRS': [os.path.join(BASE_DIR, 'templates')]

    三、静态文件配置

    STATIC_URL = '/static/'  # 改语句一般不更改
    
    # static文件夹刚开始是没有的,你必须自己在根路径下创建,创建好了在 STATIC_URL='/static/' 这行代码下写
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR,'static'),
    ]
    # 变量名必须是 STATICFILES_DIRS,必须大写,列表里面可以多个路径,看你自己的需求,配置好这个后,你就可以在你的html页面中
    
    导入相关的静态文件了,比如导入一个css文件,我写个伪代码
    <link rel="stylesheet" href="/static/mycss.css">
    注意注意了:上面代码中的static不是我们自己创建的static文件夹,它对应的是 settings.py 中的STATIC_URL = '/static/'这句代码,假如这句代码中'/static/'变成'/abc/'的话,
    那么html文件中导入css的那句代码中的"/static/mycss.css"也应变成"/abc/mycss.css",他们两个是相对应的。

    四、数据库连接配置

    1、连接sqlite数据库

    pycharm默认连接数据库,默认已配置好,无需再配置

    2、连接mysql数据库

    # 1.在配置文件的settings.py中的 DATABASES 中配置路径
    'default': {
                    'ENGINE': 'django.db.backends.mysql',
                    'HOST': '127.0.0.1',
                    'PORT': 3306,
                    'USER': 'root',
                    'PASSWORD': 'admin',
                    'NAME': 'lqz',
                }
        
    # 2.在__init__.py文件中配置
    import pymysql
    pymysql.install_as_MySQLdb()

    五、get请求和post请求

    get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制),数据会显示出来,如果是用户名密码,这种方式就不安全 post:往后台提交数据

    六、新手三件套

    1 render--返回页面
        默认会去templates里找,注意路径
    2 redirect--重定向
    3 HttpResponse
    # 本质:都是返回HttpResponse的对象

    七、登录功能案例

    # 1. login.html  
    ***重点***1. action:提交到后台的地址三种写法:
                  1. http://127.0.0.1:8000/login
                  2. /login/   推荐用
                  3. 空
             2. method  post方式
             3. <input type="submit" value="提交">或<button></button>
                    type不可以是button
                    
    <form action="http://127.0.0.1:8000/login" method="post">
    <p>用户名:<input type="text" name="name" class="form-control"></p>
    <p >
        密码:<input type="password" name="pwd" class="form-control">
    </p>
    <input type="submit" value="提交">
    </form>
    
    # 2.视图层:
            1 request.method  ----前台提交过来请求的方式
            2 request.POST(相当于字典)----post形式提交过来的数据,(http请求报文的请求体中)
            3 request.POST.get('name') ----推荐用get取值(取出列表最后一个值)
            4 request.POST.getlist('name')-----取出列表所有的值_
            5 前台get方式提交的数据,从request.GET字典里取
    
    # 3.链接数据库(防止注入,推荐以下写法)
    cur.execute('select * from user where name=%s and password=%s ',[name,pwd]) 
    #能被注入cur.execute('select * from user where name=%s and password=%s ',%(name,pwd))
  • 相关阅读:
    Vasya and Endless Credits CodeForces
    Dreamoon and Strings CodeForces
    Online Meeting CodeForces
    数塔取数 基础dp
    1001 数组中和等于K的数对 1090 3个数和为0
    1091 线段的重叠
    51nod 最小周长
    走格子 51nod
    1289 大鱼吃小鱼
    POJ 1979 Red and Black
  • 原文地址:https://www.cnblogs.com/zhangbingsheng/p/10611627.html
Copyright © 2011-2022 走看看