Django操作与内容
一、路由系统
1.如何实现伪静态
在cnblogs中:https://www.cnblogs.com/wangwei5979/p/11160708.html
而我们自己写的:
http://127.0.0.1:8000/up_studnet/?id=12同样是网页 为何cnblogs这样设计
原因:
1就是因为比较美观
2由于使用搜索引擎来搜索我们所需要的内容使,第一种的方式更容易被各个搜索引擎所收录,被搜索到的概率就高,我们自己写的会被搜索引擎认知为动态网页,而第一个方式就是伪静态。例题:
http://127.0.0.1:8000/up_studnet/?id=12http://127.0.0.1:8000/up_studnet/12/
如何实现:在urls.py里,在url中添加这样的正则匹配,
[url(r'^index/(\w+)/(\w+)/', index),
url(r'^test/(?P<id>\w+)/(?P<name>\w+)/', test),]def test(request, name, id):
print(id , name)return HttpResponse('test')此时就不需要用?id=某个值来进行传值,避免了使用?来操作
2.路由正则与反向路由
在url里
url(r'^test2/', test2)
在html中会匹配以test2/开头的所有接下来的网页可以url(r'^test2/$', test2)
只能匹配/test2/的网页了还可以自己定义404:
url(r'^', notfound) 需要写到最下面在定义了这个统配之后,所有在url没有的 都会走这个自定义的404了反向路由:
后台url:
url(r'^logindjsajdbjsabdsabdbsabdhsabdhbsahbdsaasa/$', login, name='xxx')前台:
<form action="{% url 'xxx' %}"><input type="text">
</form>
3.路由分组
有许多相同的方法可以写在一个py文件里,django也有这个方法,可以通过创建app来完成,在创建django时只可以带着创建一个app文件。
django创建app:
python3 manage.py startapp 自定义app名称路由分组总urls.py;
url(r'^app02/', include('app02.urls')),
url(r'^app03/', include('app03.urls')),分app下的 urls.py:
from app03 import viewsurlpatterns = [url(r'^students/', views.studnets)]
然后在app下的views.py里写方法
二、函数视图
FBV:
function based viewCBV:
class based viewurls.py:
url(r'^login/', views.Login.as_view()),views.py:
from django.views import Viewclass Login(View):def get(self, request):return render(request, "login.html")def post(self, request):
uname = request.POST.get('username')print(uname)
return HttpResponse('ok')原理:
'get': 请求数据
'post':提交数据
'delete': 删除数据
'put': 更新数据
'patch': 更新部分数据ps:
form表单提交 只支持get、post ajax支持核心:def dispatch(self, request, *args, **kwargs):super(Login, self).dispatch(request, *args, **kwargs)
可以创建dispatch方法来做数据的限制
三、Django的ORM
Django的ORM,跟sqlalchemy一样都是操作mysql数据库的。
在Django的ORM中,
orm配置:
a.创建数据库
create database 数据库名b.配置mysql数据库的链接:
DATABASES = {# 'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),# }'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'xxx', ## 数据库名称'USER': 'xxx',## 数据库用户名称'PASSWORD': 'xxx', ## 安装 mysql 数据库时,输入的xxx 用户的密码'HOST': '127.0.0.1',}}c. 注册app:
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app02','app03']
d. 需要将mysqldb换成pymysql
python3:pymysqlpython2:MySQLdb在总的的 __init__.py文件里
import pymysql
pymysql.install_as_MySQLdb()e:创建表 命令:在app文件的models里,可以创建如下表:
class Classes(models.Model):cid=models.AutoField(primary_key=True)cname = models.CharField(max_length=32, null=True)然后再Terminal里python manage.py makemigrationspython manage.py migrate
转载于:https://www.cnblogs.com/wangwei5979/p/11191503.html
Django操作与内容相关推荐
- Django 操作Mysql数据库 对表进行增删改查
为什么80%的码农都做不了架构师?>>> 首先说明:以下方法都是根据表已有的字段添加数据,若想新增字段,则需在类里面新建静态字段, 可参考Django 操作数据库建表 ,增删 ...
- Django操作数据库
文章目录 Django操作数据库 Django访问流程 空项目结构 ASGI和WSGI区别 HelloWord views和url配置 目录 讲解 效果 模板 模板应用实例 目录结构 新建html文件 ...
- python读取文件内容操作_Python 3.6 读取并操作文件内容
下面为大家分享一篇Python 3.6 读取并操作文件内容的实例,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 所使用python环境为最新的3.6版本 Python中几种对文件的操作方法: ...
- JS-元素的样式操作-文本内容-位置
JS-元素的样式操作-文本内容-位置 1 回顾 1.1 从文档中获取元素 1. 通过 ID 名document.getElementById()2. 通过标签名document.getElements ...
- APIS——获取dom对象、操作元素内容和属性、间歇函数
APIS 变量声明 Web API基本认知 作用和分类 DOM DOM树 DOM对象 获取DOM对象 根据CSS选择器来获取DOM元素(重点) 其它获取DOM元素方法(了解) 操作元素内容 操作元素属 ...
- 2020年制冷与空调设备运行操作考试内容及制冷与空调设备运行操作多少钱
题库来源:安全生产模拟考试一点通公众号小程序 2020年制冷与空调设备运行操作考试内容及制冷与空调设备运行操作多少钱,包含制冷与空调设备运行操作考试内容答案和解析及制冷与空调设备运行操作多少钱练习.由 ...
- 2021年制冷与空调设备运行操作考试内容及制冷与空调设备运行操作模拟试题
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年制冷与空调设备运行操作考试内容为正在备考制冷与空调设备运行操作操作证的学员准备的理论考试专题,每个月更新的制冷与空调设备 ...
- 2021年R1快开门式压力容器操作考试及R1快开门式压力容器操作考试内容
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年R1快开门式压力容器操作考试为正在备考R1快开门式压力容器操作操作证的学员准备的理论考试专题,每个月更新的R1快开门式压 ...
- 2021年制冷与空调设备运行操作考试内容及制冷与空调设备运行操作实操考试视频
题库来源:安全生产模拟考试一点通公众号小程序 制冷与空调设备运行操作考试内容是安全生产模拟考试一点通总题库中生成的一套制冷与空调设备运行操作实操考试视频,安全生产模拟考试一点通上制冷与空调设备运行操作 ...
最新文章
- mysql的安装和启动_mysql安装和启动
- JMH和Arthas定位问题的案例分享
- linux系统启动流程详解
- 制作liveusb实现centos6.2全自动无人职守安装
- 一个大数据排序问题的巧妙解法
- 你写的代码一点都不 Pythonic
- Android中使用系统相机进行拍照并获取高清照片(一)
- 在不用第三方参数的情况下,交换两个参数的值
- OFFICE技术讲座:段落五种对齐方式的说明
- ROST情感分析的语法规则_用c语言手搓一个600行的类c语言解释器: 给编程初学者的解释器教程(4)- 语法分析1...
- Linux命令之find命令
- jszip压缩服务器文件,JSZip压缩与解压的基本使用
- 微信小程序中英文切换
- java jbutton间隔_如何通过百分比设置JButton宽度? - java
- IRedMail迁移方案
- 方差、标准差、协方差
- 终于知道为啥网页不让我复制粘贴了!
- js 中按下键盘事件
- 基于C#实现的在线聊天室的桌面系统软件
- bzoj2448 挖油