学习使用Django2 前台页面展示
Django 2.1 python 3.7
创建一个虚拟环境
python -m venv 虚拟环境名称
进入虚拟环境
下载django
pip install django==2.1
创建项目: django-admin startproject 项目名称 . -->创建项目 有个点 创建应用:
python manage.py startapp 创建应用
一个干净的Django 框架,我们需要打开settings.py 进行设置
第一步: 创建数据库 : MyDB mysql 有关命令请看 这篇文章: https://www.cnblogs.com/whatarey/p/11396616.html
第二步: Django应用中的settings.py后台设置中文,数据库修改为mysql配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'MyDB', #数据库名字,
'USER': 'root', #数据库登录用户名
'PASSWORD': '', #数据库登录密码
'HOST': 'localhost', #数据库所在主机
'PORT': '', #数据库端口
}
} LANGUAGE_CODE = 'zh-hans'
第三步:创建模型:
class UserInfo(models.Model):
UserName = models.CharField(max_length=20)#用户名
create_date = models.DateField()#创建日期
pwd=models.CharField(max_length=20)#密码
第四步,后台admin.py 注册
from .models import UserInfo admin.site.register(UserInfo)
第五步 执行文件迁移
python manage.py makemigrations
python manage.py migrate
这时候,一定会出现这一个错误:
在项目中的 init.py 中加入:
import pymysql
pymysql.install_as_MySQLdb()
在运行就可以了
运行:
进入后台,突然发现没有创建后台管理员账号....
创建管理员账号:
python manage.py createsuperuser
这个密码太坑了。。。。
第六步:往项目的views.py 中添加
from django.shortcuts import render
from django.http import HttpResponse,Http404
from django.template import loader
#这里是视图 def index(request):
'''写法1'''
# template=loader.get_template('Web_Templates/index.html')
# # 2.定义上下文
# context={"title":"Index","heatde_title":"Index","BodyHtml":"这是我的主页内容<a href=''>hehe</a>"} # 这个上下文是一个字典,它将模板内的变量映射为 Python 对象。
# return HttpResponse(template.render(context,request)) '''写法2'''
data={
"title":"Index",
"heatde_title":"Index",
"BodyHtml":"中间body",
"id":[1,2,3,4,5]
}
context = data
return render(request, 'Web_Templates/index.html', context)
# 注意到,我们不再需要导入 loader 和 HttpResponse 。
# 不过如果你还有其他函数(比如说 detail, results, 和 vote )需要用到它的话,就需要保持 HttpResponse 的导入。 def getHtml(request,id):
list=[0,1,3,4]
try:
question =list[id]
except Exception as e:
raise Http404("Question does not exist")
return render(request, 'Web_Templates/Show.html', {'question': question})
第七步:项目中添加urls.py
from django.urls import path from . import views app_name="Web"
urlpatterns=[
#url(r'^$'
path("",views.index,name="Index"),
path("Show/<int:id>/",views.getHtml,name="Show"),
# '''
# # # ex: /polls/
# # path('', views.index, name='index'),
# # # ex: /polls/5/
# # path('<int:question_id>/', views.detail, name='detail'),
# # # ex: /polls/5/results/
# # path('<int:question_id>/results/', views.results, name='results'),
# # # ex: /polls/5/vote/
# # path('<int:question_id>/vote/', views.vote, name='vote'),
# '''
]
第八步,应用的urls.py 注册
第九步:创建模板 我是在 MyWeb\
第十步,把模板路径添加到项目的settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'Templates')], # 模板'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
index.html
1 <html>
<head>
<title>{{title}}</title>
</head>
<body>
<h1>{{heatde_title}}</h1>
<div>
{{BodyHtml}} {% for a_link_id in id %} <li><a href="{% url 'Web:Show' a_link_id %}" >点我有惊喜,我的编号是:{{a_link_id}}</a></li>
{% endfor %}
</div>
</body>
</html>
show.html
1 <html>
<head>
<title>111111</title>
</head>
<body>
<h1>{{question}}</h1>
<div>
{{question}} </div>
</body>
</html>
可看官网:https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial03/
ok
当id 超过了list的最大值,就会404
进入虚拟环境,切换到项目根目录下,使用pip工具的freeze参数。
(venv) D:\work\2019\for_test\mysite>pip freeze > ./requirements.txt
将会把你虚拟环境下面的所有包都写入这个
requirements.txt
他人如果拷贝了我们的代码,要安装第三方库依赖的话,只需要:
pip install -r requirements.txt
上传到git
对于settings.py文件有个问题,如果没有这个文件是无法运行Django项目的,但是settings中又可能包含很多关键的不可泄露的部分,比如SECRET_KEY:
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'b(&6i_$g2%8vh)ruu$)a9pkw+s-e&qj_e_#=@gnbo^48#gp_8a'还有数据库的IP/Port、用户名和密码,邮件发送端的用户名和密码,这些都是绝对不能泄露的。
那怎么办呢?简单!复制settings文件,并重命名为settings.example.py文件,放在同一目录里,把敏感信息、密码等修改或删除。使用者看到这个文件名,自然会明白它的作用。
喜欢就点个赞!!!文章写得真不容易。
学习使用Django2 前台页面展示的更多相关文章
- springboot+thymeleaf中前台页面展示中、将不同的数字替换成不同的字符串。使用条件运算符
主要用到的知识就是thyme leaf中的条件运算符 表达式:(condition)?:then:else 当条件condition成立时返回then.否则返回else 具体代码:<td th: ...
- SpringBoot集成websocket发送后台日志到前台页面
业务需求 后台为一个采集系统,需要将采集过程中产生的日志实时发送到前台页面展示,以便了解采集过程. 技能点 SpringBoot 2.x websocket logback thymeleaf Rab ...
- app——分享wap站,数据处理页面展示
无意中接到了一个小的工作任务:配合手机app端的分享功能做一个wap站,简言之:将手机app端分享的文章id传过来,利用此id再进行一系列的操作,由于文章分为纯文本,图文以及图集的三种类型的文章,因此 ...
- 使用spring webflow,在前台页面中如何显示后端返回的错误信息
刚刚接触spring webflow,相关的资料并不是很多,并且大都是那种入门的 .xml文件的配置. 用到的CAS 最新的4.0版本用的就是web-flow流,前台页面使用的是表单提交.于是我就碰到 ...
- 【原】老生常谈-从输入url到页面展示到底发生了什么
刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料.而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步 ...
- Phpcms 前台页面实现分页
phpcms开发就是模仿里面原有的方法进行扩展,前台要实现分页,就去找后台页面的分页实现. 如后台 扩展->后台操作日志,就有分页展示. 1.先去添加自己的分页方法(千万不要在原来的方法上修改, ...
- 我的第一个python web开发框架(18)——前台页面与接口整合
由于我们前后台系统没有分开,所以前台页面调用接口时,可以直接使用后台管理系统已经完成的接口,不过后台管理系统接口的访问加上了登录验证,所以需要将前台要用到的接口进行处理,让它们设置到白名单当中 我们打 ...
- 图书管理系统【JavaWeb:部署开发环境、解决分类、图书、前台页面模块】
前言 巩固Servlet+JSP开发模式,做一个比较完整的小项目. 成果图 该项目包含了两个部分,前台和后台. 前台用于显示 后台用于管理 该项目可分为5个模块来组成:分类模块,用户模块,图书模块,购 ...
- springmvc 项目完整示例08 前台页面以及知识点总结
至此已经基本测试成功了,我们稍作完善,让它成为一个更加完整的项目 我们现在重新规划下逻辑 两个页面 一个登录页面 一个欢迎页面 登陆页面输入账号密码,登陆成功的话,跳转登陆成功 欢迎页面 并且,更新用 ...
随机推荐
- vue项目开发优化
1 按需引入ui组件 比如elementUI,不要直接在main.js中全局引入所有的组件,可以根据elementui的说明文件,按需引入 项目中的组件 2 异步引入路由组件 使用 { path:'/ ...
- [Google] 人和自行车匹配
2D平面上,有m个人(P),n辆自行车(B),还有空白(O)满足以下条件1.m < n. 2.不存在两个人,到同一辆自行车距离相等, 距离用abs(x1-x2) + abs(y1-y2)定义3. ...
- Django:序列化的几种方法
前言 关于序列化操作,就是将一个可迭代的数据结构,通过便利的方式进行我们所需要的操作. 今天历来归纳一下,Django中的几种不同得分方法,已经Django-restframework提供的方法 创建 ...
- RobotFramework: 接口测试时,注意请求体content-type
使用Post Request关键字时 1.如果请求体的content-type为:application/x-www-form-urlencoded,则传参数时需要给params参数赋值 2.如果co ...
- CentOS 6和CentOS 7的系统服务管理
也许你配置过Windows开机启动的服务,其中有些服务在日常的管理工作中用不到,我们就要把它停止,一来可以节省资源,而来可以减少安全隐患.在Linux上同样也有相关的工具来管理系统的服务. chkco ...
- ovs 数据包的处理过程
Openvswitch的内核模块openvswitch.ko会在网卡上注册一个函数netdev_frame_hook,每当有网络包到达网卡的时候,这个函数就会被调用. static struct sk ...
- C++ 顺序容器(vector,list、deque,stack,queue)
顺序容器的种类有:vector,list.deque 顺序容器适配器: stack //先进后出 栈 queue //先进先出 队列 priority_queue //也优先管 ...
- apache 代理配置
apache 2.4.6版本 <VirtualHost *:8080> ServerName 21.12.13.146 DocumentRoot /root/gbhu ErrorLog / ...
- 公钥、私钥、数字签名、数字证书、对称与非对称算法、HTTPS
作者: yoyoso https://my.oschina.net/ioslighter/blog/359207 对公钥和私钥有点稀里糊涂的,搜索了一些资料,作一些整理吧,先看这个: 加密--公钥 看 ...
- Linux基础-03-用户、群组
1. 用户及passwd文件 1) /etc/passwd文件的功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database). 2) /etc/passwd文件每个字段的具体含义: ...