django作为一个大型框架,特点:大而全,号称“web界有django和其它".其实,django并不是很难,跟着我细细解析下,这个简单却又赋有生命的框架.
1.下载安装django插件的方式和其他第三方插件类似:
命令行: pip3 install django == 1.11.15 pip install -i 源 diango==1.11.15 () pycharm:
settings解释器 点+号 输入django选择版本
2.创建django项目
1.命令行
cd保存项目的目录
django-admin startproject项目名
2.pycharm
file -> new project -> 选择django -> 选择解释器 -> 创建django项目 执行django后,会出现mysite文件夹,目录结构如下: mysite mysite --settings.py #django配置文件 --url.py #路由系统:url->函数 --wsgi.py #用于定义django用socket,wsgiref(本地测试,性能比较低),uwsqi
--manage.py #对当前Django程序所有操作可以基于python manage.py runserver 3.启动项目: 1.命令行:
cd manage.py 的目录下
python manage.py runserver #127.0.0.1:8000
python manage.py runserver 80 #127.0.0.1:80
python manage.py runserver 0.0.0.0:80 # 0.0.0.0:80
2.pycharm
配置项
点绿色三角启动
4.settings配置 1.静态文件 STATIC_URL =\'/static/\' #别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR,\'static\'),
os.path.join(BASE_DIR,\'static1\'),
] 2.TEMPLATES 模板 HTML 文件
DIRS[os.path.join(BASE_DIR,\'templates\'] 3.注释csrf中间件 4.数据库的配置 5.URL和函数的对应关系-->urls.py urlpatterns = [ url(r\'^admin/\',admin.site.urls), url(r\'^login/\',views.login),
url(r\'^index/\',views.index),
url(r\'^test/\',views.test) ] 6.APP 1.创建APP 1.命令行: python manage.py startapp app01 2.pycharm tools -> run manage.py task -> startapp app01 2.注册APP 在settings.py 中的INSTALLED_APPS写 \'app01\' 或者 \'app01.apps.app01Config\' 7.使用MYSQL数据库 1.创建一个MySQL数据库 2.settings配置 DATABASES = {
\'default\': {
\'ENGINE\': \'django.db.backends.mysql\', # 引擎
\'NAME\': \'day66\', # 数据库名
\'USER\':\'root\', # 用户名
\'PASSWORD\':\'\', # 密码
\'HOST\':\'127.0.0.1\', # IP
\'PORT\': 3306, # 端口号
}
}
3.告诉django使用pymysql模块来连接数据库 在setting.py同级目录下的__init__.py中写: import pymysql pymysql.install_as_MySQLdb() 4.建表 在app01/models.py中定义一个类(继承object) (类名可以改) class Userinfo(models.Model):
id= models.AutoField(primary_key=True)
user = models.CharField(max_length=32) # varchar(32)
pwd = models.CharField(max_length=32)
5.执行数据库的迁移命令(需加 执行地点解释) python manage.py makemigrations #记录变化,记录在migrations下的0001_de 下面 python manage.py migrate #将变更记录,将model的变更更新到数据库中 8.ORM 对象和关系型数据库的映射 通过操作对象的方式来操作数据库 映射关系: 类 --》 数据表 对象 --》 数据行 属性 --》 字段 ORM 能做的事: 操作数据表 操作数据行 ORM操作: from login import models
查: #获取所有数据 models.Userinfo.objects.all ->Queryset类型,有点像列表 #获取一行数据 models.Userinfo.objects.get(user=\'ww\',pwd=\'123\') #and 取不到数据或者取多条数据的时候报错
#获取满足条件的对象
models.Userinfo.objects.filter(user=\'ww\')
增:
#创建一条数据(增)
models.Userinfo.objects.create(user=\'alex\',pwd=\'新闻中心\')
改:
obj=models.Userinfo.objects.get(name=\'新闻中心\')
obj.name = "新闻中心出版社“
obj.save()
删:
models.Userinfo.objects.filter(user=\'ww\').delete()
models.Userinfo.objects.get(user=\'ww\').delete()
ret = models.Userinfo.objects.all()
ret[0].delete()
#创建一条数据(增)
models.Userinfo.objects.create(user=\'alex\',pwd=\'新闻中心\')
9.form表单 1.method=‘post\' action=\'\' #请求方式 提交数据的地址 2.所有的input的标签要有name属性 3.有一个input的type=’submit\' 或者有一个button按钮 10. GET和POST GET:
1.在浏览器地址栏上输入URL 回车
2.点击 a 标签
3.form 表单不写 method
获取一个页面get请求形式 ?key1 = v1 &keys=v2 POST:提交数据
form表单指定method="post",数据不可见 11.views.py 写函数 request 形参,跟请求相关的所有内容 request.mothod 字符串 请求方式 GET/POST request.POST POST请求提交的数据 类字典形式 request.GET GET请求提交的数据 返回值 from django.shortcuts import HttpResponse,render,redirect
HttpResponse(\'字符串\') ->返回显示的就是‘字符串’ render(request,\'模板文件名\') ->渲染你的HTML文件返回给浏览器 redirect(\'要跳转的URL\') -> 重定向 告诉浏览器向url再发一次GET请求 拓展: http的八种请求方式: 1.GET 2.HEAD 3.POST 4.PUT 5.DELETE 6.TRACE0 7.OPTINOS 8.CONNECT HTTP协议: 1.请求(浏览器发送给服务器的消息-request) 格式: 请求方式 URL 协议版本 K1: v1 K2:v2 请求数据(请求体) 2.相应(服务器返回给浏览器的消息-requese) 格式: 请求方式 URL 协议版本 K1: v1 K2:v2 响应体(HTML)
HTTP状态码
所有HTTP响应的第一行都是状态行,一次是当前HTTP版本号,3位数字组成的状态代码,以及表述状态的短语,彼此由空格分隔:
- 1XX消息--请求
url的超文本传输协议
(HTTP)的统一资源定位符将从因特网获取信息的五大信息元素包括在一个简单的地址中:
- 传输协议
- 层级url标记符号(为【//】,固定不变)
- 访问资源需要的凭证信息(可省略)
- 服务器。(通常为域名,有时为ip地址)
- 端口号。(以数据方式表示,若为HTTP的默认值为“:80"可省略)
- 路径。 (以”/“字符区别路径中的每一个目录名称)
- 查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)
- 片段。 以“#”字符为起点
web框架 :
本质:socket服务器
功能 :
a. socket收发消息
b. URL和函数的对应关系,根据不同的URL执行不同的函数,返回函数的结果
c. 读取HTML文件,进行了一个字符替换(模板渲染)
分类:
Django完成了b,c两个功能
56. https://www.cnblogs.com/maple-shaw/articles/9333821.html 文章的上下翻