[2018-10-29] python开发个人资源共享网--第二天
创建Django目录
startproject my_project
创建APP
startapp my_app
手动创建的文件夹
log 日志
media 用户上传下载
static 静态文件
配置数据库
找到DATABASES
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql',
- 'NAME': 'testdjango',
- 'USER': 'root',
- 'PASSWORD': 'root',
- 'HOST': '127.0.0.1',
- ',
- }
- }
Django默认为我们提供了很多功能,但是这些功能的背后需要有一定的数据表来做支撑
生成Django默认的数据表
进入pycharm的Tools--Run manage.py Task...
执行:makemigrations 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动
migrate 生成数据表
运行项目
Run--Debug--选择自己创建的项目
默认访问地址:http://127.0.0.1:8000/
环境测试(留言板功能)
首先将写好的html、css等静态文件放到static文件夹下
配置url
- from message.views import get_form
- urlpatterns = [
- path('admin/', admin.site.urls),
- path('form/', get_form),
- ]
配置view(app下的views.py文件)
- def get_form(request):
- return render(request, 'message_form.html')
TemplateDoesNotExist
在Django的setting,py文件中有一个TEMPLATES(指明了我们获取模板文件的处理类)
在DIRS指明目录
- BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
- # 获取根目录
- # 在TEMPLATES中加入
- 'DIRS': [os.path.join(BASE_DIR, 'templates')],
配置静态路径
在setting.py文件的 STATIC_URL = '/static/' 下面加上
- STATICFILES_DIRS = [
- os.path.join(BASE_DIR, 'static')
- ]
项目配置流程
Model设计
新建的Model需要在setting中配置
在 INSTALLED_APPS下加入
'message',
ORM
编写Models.py
- class UserMessage(models.Model): object_id = models.CharField(max_length=50, default="", primary_key=True, verbose_name=u"主键") name = models.CharField(max_length=20, null=True, blank=True, default="", verbose_name=u"用户名") email = models.EmailField(verbose_name=u"邮箱") address = models.CharField(max_length=100, verbose_name=u"联系地址") message = models.CharField(max_length=500, verbose_name=u"留言信息")
- class Meta: verbose_name = u"用户留言信息"
如果有编码问题请在Model.py文件的上方加上
# _*_ coding:utf-8 _*_
通过Task执行
makemigrations messages
然后会创建一个 0001_initial.py 文件
再执行
migrate message
查询数据库中的记录
views.py
- # 查询数据def get_form(request):
- all_message = UserMessage.objects.all()
- for message in all_message:
- print(message.name)
- return render(request, 'message_form.html')
- # 插入数据def get_form(request):
- user_message = UserMessage() # 实例化对象
- user_message.name = "陈林2"
- user_message.email = "1@qq.com"
- user_message.address = "广东"
- user_message.message = "信息"
- user_message.object_id = "
- user_message.save()
- return render(request, 'message_form.html')
form表单内必须加
{% csrf_token %}
接收表单POST过来的数据添加到数据库
- # 通过POST接收到的数据添加到数据库def get_form(request):
- if request.method == "POST":
- name = request.POST.get('name', '')
- email = request.POST.get('email', '')
- address = request.POST.get('address', '')
- message = request.POST.get('message', '')
- user_message = UserMessage() # 实例化对象
- user_message.name = name
- user_message.email = email
- user_message.address = address
- user_message.message = message
- user_message.object_id = '
- user_message.save()
- return render(request, 'message_form.html')
- # 删除数据def get_form(request):
- all_message = UserMessage.objects.filter(name='陈林', address='广州白云')
- # all_message.delete()
- for message in all_message:
- message.delete()
- print(message.name)
- return render(request, 'message_form.html')
[2018-10-29] python开发个人资源共享网--第二天的更多相关文章
- [2018-08-03] python开发个人资源共享网--第一天
项目需求-环境搭建 python版本:python 3.6.2 开发工具:PyCharm 数据库:MySql5.7.24 数据库管理工具:Navicat 环境搭建完毕 ---------------- ...
- 【从零学习Python】Ubuntu14.10下Python开发环境配置
1. 前言 近期在研究计算机视觉的一些算法,也刚開始接触linux,试着在ubuntu下用qt+openCV进行开发,感觉还行.可是Python作为在学术领域广为应用的高级解释性语言.其在计算机视觉的 ...
- 2018.10.29 bzoj4564: [Haoi2016]地图(仙人掌+莫队)
传送门 根据原图建一棵新的树. 把原图每一个环上除了深度最浅的点以外的点全部向深度最浅的点连边. 然后可以搞出来一个dfsdfsdfs. 这个时候我们就成功把问题转换成了对子树的询问. 然后就可以对权 ...
- 2018.10.29 洛谷P4129 [SHOI2006]仙人掌(仙人掌+高精度)
传送门 显然求出每一个环的大小. Ans=∏i(siz[i]+1)Ans=\prod_i(siz[i]+1)Ans=∏i(siz[i]+1) 注意用高精度存答案. 代码: #include<b ...
- 2018.10.29 NOIP2018模拟赛 解题报告
得分: \(70+60+0=130\)(\(T3\)来不及打了,结果爆\(0\)) \(T1\):简单的求和(点此看题面) 原题: [HDU4473]Exam 这道题其实就是上面那题的弱化版,只不过把 ...
- 2018.10.29 bzoj3718: [PA2014]Parking(树状数组)
传送门 显然只用判断两个会相交的车会不会卡住就行了. 直接树状数组维护后缀最大值就行了. 代码: #include<bits/stdc++.h> using namespace std; ...
- 2018.10.29 NOIP训练 数据结构(带修改莫队)
传送门 带修莫队板题. 直接按照经典写法做就行了. 代码
- 2018.10.29 bzoj1023: [SHOI2008]cactus仙人掌图(仙人掌+单调队列优化dp)
传送门 求仙人掌的直径. 感觉不是很难. 分点在环上面和不在环上分类讨论. 不在环上直接树形dpdpdp. 然后如果在环上讨论一波. 首先对环的祖先有贡献的只有环上dfsdfsdfs序最小的点. 对答 ...
- 2018.10.26-day5 python整理总结
今日内容: 1.字典 2.id is == 3.小数据池 4.集合昨日回顾:1.列表:可变的 增:append//insert//extend//+//* 删:remove//pop//clear// ...
随机推荐
- uC/OS-III 任务详解(四)
uC/OS系统的任务一般都放在最开始介绍,我放在第四章主要是对模糊的概念作清晰的讲解. 从用户的角度来看,uC/OS-III 中的任务可以分为5 种状态,分别是休眠态.就绪态.运行态.挂起态和中断态, ...
- Vim 使用 DrawIt 画图
简介 DrawIt 插件用来在 Vim 中进行简单的画图功能.可以方便地移动光标并画出横线.竖线.斜线.箭头和交叉字符,也带有实用的画图功能,轻松画带箭头的线.矩形及椭圆. 官方主页:https:// ...
- Spring Boot 2.X(二):集成 MyBatis 数据层开发
MyBatis 简介 概述 MyBatis 是一款优秀的持久层框架,支持定制化 SQL.存储过程以及高级映射.它采用面向对象编程的方式对数据库进行 CRUD 的操作,使程序中对关系数据库的操作更方便简 ...
- Nginx开启Gzip压缩提升页面加载速度
1.在 nginx 的conf 目录下新建 gzip.conf 文件 #开启gzip压缩 gzip on; #设置允许压缩的页面最小字节数 gzip_min_length 1k; #申请4个单位为16 ...
- selenium + python + firefox 测试环境的搭建与配置
对于做UI自动化,如果是纯编写一段自动化测试程序,那么后续的维护成本会较高.这种情况下,借助 selenium 这款自动化系测试工具,辅助于自己编写部分脚本,将是个不错的选择.selenium 本身支 ...
- Linux内核版本介绍与查询
Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...
- HeidiSQL、Navicat、mysql命令和source命令导入sql脚本的速度比较
一.四种导入方式的比较 1.heidisql客户端是一条一条插入的,速度最慢,而且很脆弱比较容易崩溃: 2.mysql命令导入380万记录用时1小时13分(属于前台运行的命令,ctrl+c就可以结束) ...
- drf框架serializers中ModelSerializer类简化序列化和反序列化操作
0905自我总结 drf框架serializers中ModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11 ...
- Jenkins部署(基于windows)
一.安装jdk,配置环境变量 二.安装tomcat和jenkins 1.检查电脑上8080端口是否被占用: 命令行中输入:netstat -ano 2.下载Tomcat Tomcat官方网站:http ...
- [Luogu3787] 冰精冻西瓜
题目背景 盛夏,冰之妖精琪露诺发现了一大片西瓜地,终于可以吃到美味的冻西瓜啦. 题目描述 琪露诺是拥有操纵冷气程度的能力的妖精,一天她发现了一片西瓜地.这里有n个西瓜,由n-1条西瓜蔓连接,形成一个有 ...