zoukankan      html  css  js  c++  java
  • 第一个django项目

    部分转自:https://www.cnblogs.com/linagcheng/p/9932302.html

    1.项目启动:

      pycharm启动:点击绿色的小三角,直接启动django项目(小三角的左边是django名字)

    "C:Program FilesJetBrainsPyCharm 2018.3.3in
    unnerw64.exe" C:UserszteAppDataLocalProgramsPythonPython35python.exe C:/Users/zte/PycharmProjects/untitled3/manage.py runserver 8000
    Performing system checks...
    
    System check identified no issues (0 silenced).
    
    You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    January 31, 2019 - 11:28:44
    Django version 2.1.5, using settings 'untitled3.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    View Code

    2.app

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

    forum_api--------------------项目
        api------------app01
      forum------------ 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'
    • 方式二创建app
    # pycharm会自动注册app,即 INSTALLED_APPS 中
    'app01.apps.App01Config'

    在注册过一次以后,不能再次注册

    二、模板配置

    1、创建模板文件

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

    2、模板注册

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

    1.Template(存放HTML文件的配置)

      2.配置静态文件的存放位置

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

    3.注释掉csrf相关的中间文件

    1 MIDDLEWARE = [
    2     'django.middleware.security.SecurityMiddleware',
    3     'django.contrib.sessions.middleware.SessionMiddleware',
    4     'django.middleware.common.CommonMiddleware',
    5     # 'django.middleware.csrf.CsrfViewMiddleware',
    6     'django.contrib.auth.middleware.AuthenticationMiddleware',
    7     'django.contrib.messages.middleware.MessageMiddleware',
    8     'django.middleware.clickjacking.XFrameOptionsMiddleware',
    9 ]

      在项目下的settings.py中ROOT_URLCONF = "项目名.urls“

    ROOT_URLCONF = 'xp.urls'

     前台发来请求会先去项目下的test3/xp.py文件进行正则匹配找到应该执行的视图函数。

    四、数据库连接配置

    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': '',
                    'NAME': 'wzhe',
                }
        
    # 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])
  • 相关阅读:
    javaWeb接口开发
    .NET设计模式(4):建造者模式(Builder Pattern)(转载)
    .net数据库连接池(转载)
    系统操作日志设计(转载)
    系统操作日志设计-代码实现(转载)
    GOF对Builder模式的定义(转载)
    Javascript中的对象和原型(一)(转载)
    Javascript中的对象和原型(二)(转载)
    Javascript中的对象和原型(三)(转载)
    服务器安全设置(转载)
  • 原文地址:https://www.cnblogs.com/noplablem-wangzhe0635/p/10344510.html
Copyright © 2011-2022 走看看