Python之django基础第一天,认识django
什么是框架?
框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。
对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。
mvc 和mvt 模式的区别:
著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。
模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。
什么是Django,Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式
Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
Python命令行创建项目:django-admin stratproject 项目名
Python命令行创建子应用: django manage.py startapp 子应用名
django第一个hellowork
def cur_time(request): # 创建一个方法
return HttpResponse("hello,django") # 使用HttpResponse进行返回
# 路由 url(r"^hello_django/",views.cur_time), 浏览器通过127.0.0.1:8000/hello_django 进行访问
使用django的模板
创建一个html页面
前端代码
<form action="/rongou/" method="post">
<p>用户名:<input type="text" name="username"></p>
<p>性别::<input type="text" name="sex"></p>
<p>邮箱:<input type="text" name="email"></p>
<p>手机号:<input type="text" name="mobile"></p>
<p><input type="submit" value="提交"></p>
</form>
<table border="1px">
<tr>
<td>用户名</td>
<td>性别</td>
<td>邮箱</td>
<td>手机号</td>
</tr>
{# 使用模板进行渲染 #}
{% for f in list %}
<tr>
<td>{{ f.username }}</td>
<td>{{ f.sex }}</td>
<td>{{ f.email }}</td>
<td>{{ f.mobile }}</td>
</tr>
{% endfor %}
</table>
</body>
后台代码
def indexs(request):
# 校验提交方式
if request.method == "POST":
username = request.POST.get("username") # 获取用户名
sex = request.POST.get("sex") # 获取性别
email = request.POST.get("email") # 获取邮箱
mobile = request.POST.get("mobile") # 获取手机号码
# 把数据添加到字典中
rongou = {"username":username,"sex":sex,"email":email,"mobile":mobile}
# # 把字典添加到列表中
list_user.append(rongou)
return render(request,"rongou.html",{"list":list_user})
因为前端会涉及到一个csrf的跨域,要在配置文件中setting.py,把csrf注释(后期再讲怎么运行请求跨域)
用django的数据库
django会自带数据库,为sqlite3的数据库(默认)
class userInfo(models.Model):
"""
创建模型类
"""
username = models.CharField(max_length=64)
sex = models.CharField(max_length=64)
email = models.CharField(max_length=64)
mobile = models.CharField(max_length=64)
ps:后期详细讲模型类
数据库迁移 :python manage.py makemigrations 在执行 python manage.py migrate
数据库保存前端数据,并渲染到前端
def indexs(request):
# 校验提交方式
if request.method == "POST":
username = request.POST.get("username") # 获取用户名
sex = request.POST.get("sex") # 获取性别
email = request.POST.get("email") # 获取邮箱
mobile = request.POST.get("mobile") # 获取手机号码
# # 把数据添加到字典中
# rongou = {"username":username,"sex":sex,"email":email,"mobile":mobile}
# # 把字典添加到列表中
# list_user.append(rongou)
# return render(request,"rongou.html",{"list":list_user})
# 把数据插入数据库
models.userInfo.objects.create(
username=username, # 用户名
sex=sex, # 性别
email=email, # 邮箱
mobile=mobile # 手机号
)
# 从数据库获取数据进行渲染 all()获取全部
list = models.userInfo.objects.all()
return render(request, "rongou.html",{"list": list})
看代码沉浮,谁轮人生,初识django结束