zoukankan      html  css  js  c++  java
  • Django的安装与配置

    1. web框架的本质:  socket服务端 与 浏览器的通信


    2. socket服务端功能划分:
          a. 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn...
          b. 根据用户访问不同的路径执行不同的函数
          c. 从HTML读取出内容,并且完成字符串的替换 --> jinja2(模板语言)

    3. Python中 Web框架的分类:

    1. 按上面三个功能划分:
         1>. 框架自带a,b,c --> Tornado
         2>. 框架自带b和c,使用第三方的a --> Django
         3>. 框架自带b,使用第三方的a和c --> Flask


    2. 按另一个维度来划分:
         1>. Django --> 大而全(你做一个网站能用到的它都有)
         2>. 其他 --> Flask 轻量级


    3. 新建Django项目
    命令行创建:
          django-admin startproject mysite
    pycharm创建:
    1. File --> New project --> 左侧选Django --> 右侧填项目路径,并且勾选python.exe

    4. 设置Django项目:
    1. settings.py
    1. 配置HTML文件存放的位置   settings.py ----->TEMPLATES  默认pycharm已经把路径创建完成

    1 TEMPLATES = [
    2     {
    3         'BACKEND': 'django.template.backends.django.DjangoTemplates',
    4         'DIRS': [os.path.join(BASE_DIR, 'templates')]

    2. 配置静态文件存放的位置    settings.py ----->最下面

    在根目录下创建一个static文件夹,放入类似css. JavaScript, jQuery, picture等静态引用文件资源

    1 #静态文件保存目录的别名
    2 STATIC_URL = '/static/'
    3 
    4 #所有静态文件都放在配置的文件夹中
    5 STATICFILES_DIRS=[
    6     os.path.join(BASE_DIR,'static')
    7 ]

     以后引用下面的文件 直接  /static  比如:

    1 <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">

    3.在未涉及后面的csrf框架内容前,暂时需要注释掉它 默认在seeting.py 47行   MIDDLEWARE列表里面

    1 # 'django.middleware.csrf.CsrfViewMiddleware',

    GET请求: 是客户端从服务器获取资源   获取网页的请求

    POST请求:是客户端提交内容给服务器  比如表单的提交

     1 from django.conf.urls import url
     2 from django.contrib import admin
     3 from django.shortcuts import HttpResponse,render,redirect
     4 
     5 def login(request):
     6     error_msg=''
     7     if request.method=='POST':
     8         email = request.POST.get('email')
     9         pwd = request.POST.get('pwd')
    10         print(email, pwd)
    11         if email == 'kevin@qq.com' and pwd == '12121':
    12             return redirect('http://www.baidu.com')
    13         else:
    14             error_msg='邮箱或者密码错误'
    15     return render(request, 'login.html',{'error':error_msg})

    需要注意:GET和POST均需要大写

    render函数:实现页面的渲染输出,还可以实现对关键字的渲染,比如警告或错误提示

    redirect函数:实现页面重定向 特殊跳转

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    关于HTML页面要注意的地方:

    1.获取用户输入的内容应该放在form表单里,输入框或者选择框等必须有name属性(name属性将会作为字典的键,从而获取用户输入内容)

    1  email = request.POST.get('email')
    2  pwd = request.POST.get('pwd')

    2.form表单里的action属性控制提交到哪,method一般会设置为POST

    1 <form class="form-horizontal" action="/login/" method="post">

    3.提交按钮类型必须为submit

    1  <button type="submit" class="btn btn-primary btn-block">登录</button>

    4.上面提到的error取值源于

    1 <p class="text-danger text-center">{{ error }}</p>

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    完整的HTML表单页面代码块:

     1 <!DOCTYPE html>
     2 <html lang="zh-CN">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta http-equiv="x-ua-compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1">
     7     <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
     8     <link rel="stylesheet" href="/static/fontawesome/css/font-awesome.min.css">
     9     <title>欢迎登录</title>
    10     <style>
    11         body {
    12             background-color: #eee;
    13         }
    14     </style>
    15 </head>
    16 <body>
    17 
    18 <div class="container">
    19     <div class="row">
    20         <div class="col-md-4 col-md-offset-4" style="margin-top: 100px">
    21             <h1 class="text-center">请登录</h1>
    22             <form class="form-horizontal" action="/login/" method="post">
    23                 <div class="form-group">
    24                     <label for="inputEmail3" class="col-sm-2 control-label"></label>
    25                     <div class="input-group col-sm-8">
    26                          <span class="input-group-addon"><i class="fa fa-envelope-o fa-fw"></i></span>
    27                         <input type="email" name="email" class="form-control" id="inputEmail3" placeholder="Email">
    28                     </div>
    29                 </div>
    30                 <div class="form-group">
    31                     <label for="inputPassword3" class="col-sm-2 control-label"></label>
    32                     <div class="input-group col-sm-8">
    33                         <span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span>
    34                         <input type="password" name="pwd" class="form-control" id="inputPassword3" placeholder="Password">
    35                     </div>
    36                 </div>
    37                 <div class="form-group">
    38                     <div class="input-group col-sm-offset-2 col-sm-8">
    39                         <div class="checkbox">
    40                             <label>
    41                                 <input type="checkbox"> 记住我
    42                             </label>
    43                         </div>
    44                     </div>
    45                 </div>
    46                 <div class="form-group">
    47                     <div class="input-group col-sm-offset-2 col-sm-8">
    48                         <button type="submit" class="btn btn-primary btn-block">登录</button>
    49                     </div>
    50                 </div>
    51                 <p class="text-danger text-center">{{ error }}</p>
    52             </form>
    53         </div>
    54     </div>
    55 </div>
    56 </body>
    57 </html>

     >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    APP应用程序的创建:

    最好默认在创建web时就在pycharm 的隐藏More Seeting里面去填入APP的名字,自动创建完成

    若在web项目创建之后想添加APP程序 可以在pycharm命令行里输入:Python manage.py  startapp app名

    配置:默认创建则会自动将APP添加到seeting配置文件里

    否则需要手动添加: INSTALLED_APPS列表下的

    1 'appfind.apps.AppfindConfig',
  • 相关阅读:
    URAL1966 Cipher Message 3
    hdu5307 He is Flying
    UVA12633 Super Rooks on Chessboard
    spoj-TSUM Triple Sums
    bzoj3160 万径人踪灭
    bzoj2194 快速傅立叶之二
    FFT NTT 模板
    NOI2009 植物大战僵尸
    最长k可重线段集问题
    最长k可重区间集问题
  • 原文地址:https://www.cnblogs.com/wen-kang/p/9533354.html
Copyright © 2011-2022 走看看