Django 碎片集合
命令行创建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'),
# )

网页部分

每个网页之间的传送都是以字符串来传输
没加“”是变量 ,而页面传输的是要字符串


入门三件套

(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 碎片集合的更多相关文章
- Django之集合函数使用与mysql表的创建特殊字段分析
1. 集合函数的使用场景: -- 单独使用: 不分组, 只查聚合结果 -- 分组使用: 按字段分组, 可查询分组字段与聚合结果 2. 导入聚合函数 from django.db.models impo ...
- django shell 集合
1.创建project $ django-admin startproject mysite 2.真正执行,修改数据库 $ python manage.py migrate 3.运行服务 $ pyth ...
- Django知识点集合
- Django最佳实践(中文版)
这是一份关于开发和部署 Django Web 框架 的动态文档 (会随时更新). 这些准则不应该被认为是 绝对正确 或 唯一 使用 Django 的方法, 应该说这些最佳实践是我们使用框架多年来积累的 ...
- Django 最佳实践
不错的Django实践规范,转自Github: https://github.com/brantyoung/zh-django-best-practices/blob/master/readme.rs ...
- django orm(2)
目录 聚合函数 分组查询 F与Q查询 F查询 Q查询 事务 Django中的事务 orm字段及参数 自定义char字段 聚合函数 这里的聚合函数和SQL里的聚合函数对应,在使用前需要先进行模块的导入: ...
- 单独立使用Django ORM
一.常用的ORM框架简介 在Python下的ORM库不少,同样介绍类似的博文也不少,但是是我非常规的用法,顺便做做笔记.这里参考Python 常用的ORM框架简介文章列出几个, 这个几个我都使用过,但 ...
- Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(一)
Flume 1.7.0 User Guide Introduction(简介) Overview(综述) System Requirements(系统需求) Architecture(架构) Data ...
- MySQL工具:管理员必备的10款MySQL工具
MySQL是一个复杂的的系统,需要许多工具来修复,诊断和优化它.幸运的是,对于管理员,MySQL已经吸引了很多软件开发商推出高品质的开源工具来解决MySQL的系统的复杂性,性能和稳定性,其中大部分是免 ...
随机推荐
- Java程序设计基础
Java程序设计基础
- Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) A. Oath of the Night's Watch
地址:http://codeforces.com/problemset/problem/768/A 题目: A. Oath of the Night's Watch time limit per te ...
- 牛客网暑期ACM多校训练营(第一场)- J Different Integers (莫队)
题意:裸的莫队题,每个查询Li,Ri,返回区间[1,Li]和[Ri,N]区间中不同的数的个数. 分析:正常的离线查询,是求区间[Li,Ri]中要求的答案,而该题所求答案为外侧两个区间中的答案,那么cn ...
- 自定义mousewheel事件,实现图片放大缩小功能实现
本文是承接 上一篇的<自定义鼠标滚动事件> 的基础上实现的,建议大家先看一下上一篇的mousewheel的实现,再浏览下文: 上篇中我们介绍到: $element.mousewheel( ...
- python中访问限制
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的na ...
- Django内置Admin解析
Django 内置的admin是对于model中对应的数据表进行增删改查提供的组建 一.Django admin的内部依赖: 依赖的app django.contrib.auth django.con ...
- Python3.x:pyodbc调用sybase的存储过程
Python3.x:pyodbc调用sybase的存储过程 示例代码 # python3 # author lizm # datetime 2018-03-02 17:00:00 # -*- codi ...
- Python数据处理实例
使用python进行数据处理的实例(数据为某公司HR部门关于员工信息的部分摘录,kaggle上面的一次赛题) https://www.kaggle.com/c/kfru-dbm-hr-analytic ...
- spring security结合数据库验证用户-XML配置方式
之前的用户信息我们都是使用的内存用户,测试例子可以,实际中使用肯定不行,需要结合数据库进行验证用户.这就是本节的重点: 项目目录如下: 在之前的项目中的依赖中添加两个依赖: <dependen ...
- codeforces528D Fuzzy Search
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...