Django入门(下)
一.创建APP
在每一个django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等.互相之间比较独立,但也有联系.
在pycharm下方的Terminal终端中输入命令:
python manage.py startapp app01
就可以创建一个名为app01的APP,django自动生成app01文件夹
创建好之后需要在settings中进行配置注册

二.模板路径配置
模板文件一般都存放在templates文件夹下,该文件夹也就是html文件们的归置目录,使用pycharm创建Django项目时,该文件夹是默认添加的,如果是自己建的Django项目,就需要在settings文件夹中进行配置注册.

三.静态文件配置
我们可以将html文件返回给用户,但是还需要一些其他类型的文件如css,js和其他的插件,所以在django中,一般将静态文件放在static目录中.所以需要在项目目录下新建一个static文件夹

当然,为了让django找到这个目录,依然需要对settings进行配置

然后在html文件中,就可以引入js文件了

四.登录功能
login.html
<body>
<!-- action:提交给后台的地址,有三种写法 -->
<!-- 1.http://127.0.0.1:8000/login -->
<!-- 2./login/ -->
<!-- 3.空 -->
<form action="/login/" method="post">
<p>
用户名:<input type="text" name="name" class="form-control">
</p>
<p>
密码:<input type="text" name="pwd" class="form-control">
</p>
<input type="submit" value="提交">
</form>
</body>
views.py
def login(request):
# request.method--前台提交过来请求的方式
if request.method == "GET":
return render(request, "login.html")
elif request.method == "POST":
# request.POST(相当于字典)--post形式提交过来的数据
# request.POST.get("name")--推荐用get取值(取出列表最后一个值)
name = request.POST.get("name")
pwd = request.POST.get("pwd")
# 连接数据库
conn= pymysql.connect(host='127.0.0.1', port=3306, db='abc', user='root', password='123456')
cur = conn.cursor()
# 防止sql注入漏洞,推荐以下写法
cur.execute('select * from user where name=%s and password=%s', [name, pwd])
user = cur.fetchone()
if user:
return HttpResponse("登录成功")
else:
return HttpResponse("密码或用户名错误")
五.get请求和post请求
get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制)
post:往后台提交数据
六.新手三件套
1.render--返回页面,默认回去templates中来,所以需要注意路径的配置
2.redirect--重定向
3.HttpResponse--返回字符串
本质都是返回HttpResponse的对象
七.ORM介绍
ORM即Object Relational Mapping,全称为对象关系映射
使用方式:连接mysql数据库
在settings文件中配置:
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'admin',
'NAME': 'lqz',
}
还需要在app下的__init__.py中写:
import pymysql
pymysql.install_as_MySQLdb()
然后在models文件中新建一个类,该类就是数据库中的数据表
class User(models.Model):
# 自增int类型,主键
id = models.AutoField(primary_key=True)
# name和pwd是varchar类型,长度是32
name=models.CharField(max_length=32)
pwd=models.CharField(max_length=32)
接下来要在pycharm的teminal中通过命令创建数据库的表了。有2条命令,分别是:
1.python manage.py makemigrations ---记录以下数据库的变化
2.python manage.py migrate ---将变化同步到数据库中
Django入门(下)的更多相关文章
- 【django入门教程】Django的安装和入门
很多初学django的朋友,都不知道如何安装django开发以及django的入门,今天小编就给大家讲讲django入门教程. 注明:python版本为3.3.1.Django版本为1.5.1,操作系 ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- python学习笔记--Django入门四 管理站点
上一节 Django入门三 Django 与数据库的交互:数据建模 "管理员界面"是基础功能中的重要部分. django.contrib 包 Django自动管理工具是djang ...
- Django 入门
Django 入门 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模型,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容 ...
- Django入门实践(三)
Django入门实践(三) Django简单应用 前面简单示例说明了views和Template的工作过程,但是Django最核心的是App,涉及到App则会和Model(数据库)打交道.下面举的例子 ...
- Django入门实践(二)
Django入门实践(二) Django模板简单实例 上篇中将html写在了views中,这种混合方式(指Template和views混在一起)不适合大型开发,而且代码不易管理和维护,下面就用Djan ...
- Django入门-框架目录介绍
Django入门博客:https://www.cnblogs.com/chuangming/p/9076721.html#4098510 备注:使用 Django 框架之后,开发服务端方便了很多.我们 ...
- Django入门与实践 17-26章总结
Django入门与实践-第17章:保护视图 Django 有一个内置的视图装饰器 来避免它被未登录的用户访问: 现在如果用户没有登录,将被重定向到登录页面: 现在尝试登录,登录成功后,应用程序会跳转到 ...
- python代码自动补全配置及Django入门Demo
django入门代码示例小博客:https://pan.baidu.com/s/1pLjLPSv 1.自动补全功能 许多人都知道 iPython 有很好的自动补全能力,但是就未必知道 python 也 ...
随机推荐
- 将制定目录家到系统PATH环境变量中
1.打开系统文件sudo vim/etc/profile,请输入root密码 2.在appendpath '/usr/local/sbin' appendpath '/usr/local/bin' a ...
- 20175313 张黎仙《Java综合讲座》第十三周课堂测试总结
目录 一.JAVA中两大类型 二.基本类型与类类型的相互转化 三.int与Integer之间的区别 四.String.StringBuffer.StringBuilder三者之间的区别 五.Array ...
- 2019 DDCTF 部分writeup
网上的wp已经很多了,但wp普遍很简略.我尽量写的详细一点. 一.WEB 滴~ 拿到题目后首先右键查看源代码,发现图片是以base64传送的 而且看url发现里面应该是包含了文件名,并且用了某个编码. ...
- Spring tools
sts是什么? sts是spring tool suite的缩写,是基于eclipse的.开发spring应用的定制的开发环境. 提供了什么? 实现.调试.运行.部署spring应用的现成的环境.包括 ...
- Django 测试开发4 Django 模板和分页器
Django结合前端框架Bootstrap来开发web页面.pip install django-bootstrap3 在setting.py添加‘bootstrap3’. 继承模板. 在base页面 ...
- python 经典排序算法
python 经典排序算法 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.常见的内部排序算 ...
- Ionic4.x 项目结构简单分析
新建项目 e2e:端对端测试文件 node_modules :项目所需要的依赖包 resources :android/ios 资源(更换图标和启动动画) src:开发工作目录,页面.样式.脚本和图片 ...
- 简易的CRM系统案例之SpringMVC+JSP+MySQL+hibernate框架版本
继续对上一版本进行改版,变成SpringMVC框架 简易的CRM系统案例之易的CRM系统案例之JSP+MySQL+SSH框架版本 src/spring.xml <?xml version=&qu ...
- 算法习题---4-1象棋(UVa1589)
一:题目 在黑方只有一个“将”的情况下,红方只有(车.马.炮)(可以多个).帅的情况下,判断黑方是否被将死 (一)题目详解 其中棋盘按照坐标方式表示,左上角为(,),列数最大9,行数最大10 G 表示 ...
- 使用java自带线程池
java提供自带的线程池,而不需要自己去开发一个自定义线程池了. 线程池类ThreadPoolExecutor在包java.util.concurrent下 ThreadPoolExecutor ...