命令行创建Django项目

熟记建立django命令:django-admin startproject xx   (start   project)

目录介绍

manage.py 文件是用来管理文件的

// 启动django项目
// python manage.py runserver 127.0.0.1:8001 // wsgi.py 该文件本质是创建socket服务端
// setting 为配置文件

创建project

修改配置文件

  注释 csrf

  创建模板路径(找到引用的html文件)

# 'DIRS': [os.path.join(BASE_DIR, 'templates')]

  添加静态文件,js.css.img(注意,需加逗号。)

# STATICFILES_DIRS = (
# os.path.join(BASE_DIR,'static'),
# )

网页部分

name 有name 后端才能获取数据
action 获取提交网址的数据

一般先get(获取数据 )再post(提交数据)
post不会显示
get会显示

每个网页之间的传送都是以字符串来传输

没加“”是变量 ,而页面传输的是要字符串

入门三件套

(1)HttpResponse:用于向服务端返回字符串,如启动服务后,在浏览器请求:127.0.0.1:8000/index/后,浏览器显示hello world字符内容

from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse
def index(request):
return HttpResponse("hello world") urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^index/', index),
]

(2)render:用于渲染html文件,如启动服务后,在浏览器请求:127.0.0.1:8000/login/后,浏览器会显示login.html文件应被渲染出的结果

from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import render #render用于渲染html文件
def login(request): #request就代表了请求的所有内容
return render(request,"login.html") urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^login/', login),
]

(3)redirect:用于跳转到指定的连接,实例如下:当启动服务端后,在浏览器请求:127.0.0.1:8000/login/后,会显示login.html被渲染的登录界面,提交后若判断登录成功,则会跳转到指定的网页。

login.html文件主要代码:

<body>
<h1>用户登录</h1>
<form action="/login/" method="post"> //action为提交路径,action为请求方式
<p><input type="text" name="username"></p>
<p><input type="password" name="userpswd"></p>
<p><input type="submit" value="提交"></p>
{{ error_msg }} //模板语言,不传值不会显示
</form>
</body>

项目中url逻辑代码:

from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse,render,redirect
def login(request):
if request.method=="GET": #request.method表示请求类型
return render(request,"login.html")
else:#当点击提交按钮执行
print(request.method) #结果:POST
print(request.POST) #结果为登录输入的用户名及密码<QueryDict: {'uesername': ['zhangli'], 'userpswd': ['123']}>
if request.POST.get("username")=="zhangli" and request.POST.get("userpswd")=="":
return redirect("http://www.baidu.com") #如果登录成功,则跳转其他页面
else:
return render(request, "login.html", {"error_msg": "用户名或密码错误"}) #有html有模板语言(占位用)时render用法
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^login/', login),
]

模板语言

  主要用于html文件中,暂时主要介绍两种:用于实现循环和占位,占位已在上一节展示,此处不再演示,主要介绍循环模板,如下例:

index.html文件主要代码:

<body>

<table border="">
<thead>
<tr>
<th>#</th>
<th>用户名</th>
<th>密码</th>
</tr>
</thead>
<tbody>
{% for i in user_list %}
<tr>
<td>{{ i.id }}</td>
<td>{{ i.name }}</td>
<td>{{ i.pwd }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse,render,redirect
def index(request):
import pymysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="", db="day65", charset="utf8")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("select id, name, balance from user")
user_list = cursor.fetchall()
cursor.close()
conn.close()
print(user_list)#查询结果为:[{'id': 1, 'name': 'egon', 'balance': 10000}, {'id': 2, 'name': 'alex', 'balance': 2000}, {'id': 3, 'name': 'wsb', 'balance': 20000}]
return render(request, "index.html", {"user_list": user_list}) urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^login/', login),
url(r'^index/', index),
]

关于HTML页面设置

一:

form表单提交的三要素

1、form的标签属性:action="提交的URL地址",method="POST",不写默认为GET请求。

2、form表单里面要包含有一个submit的按钮。

3、input、select、checkbox、radio、textarea必须有name属性

二:

如果POST请求提交过来的数据某一项有多个值:

比如:多选的select、 checkbox

需要写:request.POST.getlist("xxx")

Django 碎片集合的更多相关文章

  1. Django之集合函数使用与mysql表的创建特殊字段分析

    1. 集合函数的使用场景: -- 单独使用: 不分组, 只查聚合结果 -- 分组使用: 按字段分组, 可查询分组字段与聚合结果 2. 导入聚合函数 from django.db.models impo ...

  2. django shell 集合

    1.创建project $ django-admin startproject mysite 2.真正执行,修改数据库 $ python manage.py migrate 3.运行服务 $ pyth ...

  3. Django知识点集合

  4. Django最佳实践(中文版)

    这是一份关于开发和部署 Django Web 框架 的动态文档 (会随时更新). 这些准则不应该被认为是 绝对正确 或 唯一 使用 Django 的方法, 应该说这些最佳实践是我们使用框架多年来积累的 ...

  5. Django 最佳实践

    不错的Django实践规范,转自Github: https://github.com/brantyoung/zh-django-best-practices/blob/master/readme.rs ...

  6. django orm(2)

    目录 聚合函数 分组查询 F与Q查询 F查询 Q查询 事务 Django中的事务 orm字段及参数 自定义char字段 聚合函数 这里的聚合函数和SQL里的聚合函数对应,在使用前需要先进行模块的导入: ...

  7. 单独立使用Django ORM

    一.常用的ORM框架简介 在Python下的ORM库不少,同样介绍类似的博文也不少,但是是我非常规的用法,顺便做做笔记.这里参考Python 常用的ORM框架简介文章列出几个, 这个几个我都使用过,但 ...

  8. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(一)

    Flume 1.7.0 User Guide Introduction(简介) Overview(综述) System Requirements(系统需求) Architecture(架构) Data ...

  9. MySQL工具:管理员必备的10款MySQL工具

    MySQL是一个复杂的的系统,需要许多工具来修复,诊断和优化它.幸运的是,对于管理员,MySQL已经吸引了很多软件开发商推出高品质的开源工具来解决MySQL的系统的复杂性,性能和稳定性,其中大部分是免 ...

随机推荐

  1. tomcat web工程 jar包冲突解决方法

    目前在部署工程时,遇到了一个问题,报错信息如下: See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet ...

  2. python selenium firefox使用

    演示的版本信息如下: Python 3.6.0 Selenium  3.5.0 Firefox 55.0.3 geckodriver v1.0.18.0 win64 1.前提准备 1.1 安装pyth ...

  3. JAVA发送HttpClient

    http://bijian1013.iteye.com/blog/2310211 在发送HTTP请求的时候会使用到POST和GET两种方式,如果是传送普通的表单数据,我们直接将参数到一个Key-val ...

  4. js算法-快速排序(Quicksort)

    快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出.在平均状况下,排序n个项目要O(nLogn)次比 ...

  5. tinyxml优化之一

    原文链接:http://www.cnblogs.com/zouzf/p/4154569.html 最近在搞XML解析优化,公司引擎用了tinyxml1和tinyxml2两个XML库,后者的效率比前者高 ...

  6. Spring Boot 中使用jsp

    接SpringBoot 快速入门(Eclipse): 步骤一:视图支持 Springboot的默认视图支持是Thymeleaf,但是Thymeleaf我们不熟悉,我们熟悉的还是jsp. 所以下面是讲解 ...

  7. java 多继承的典型应用实例(不同的报文不同的方法去解析)

    关于 java 多继承的典型应用实例 针对不同业务类型的XML文件的解析 在PCS 项目: public class CainiaoXMLMessageResolverServiceImpl impl ...

  8. 深度学习框架TensorFlow在Kubernetes上的实践

    什么是TensorFlow TensorFlow是谷歌在去年11月份开源出来的深度学习框架.开篇我们提到过AlphaGo,它的开发团队DeepMind已经宣布之后的所有系统都将基于TensorFlow ...

  9. 更新CentOS 6.7源为阿里源

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...

  10. ImageView显示网络上的图片

    ImageView显示网络上的图片 一.简介 二.方法 1)ImageView显示网络上的图片方法 第一步:从网络上下载图片 byte[] byteArr = downImage();//这个是自己写 ...