学习使用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 前台页面以及知识点总结
至此已经基本测试成功了,我们稍作完善,让它成为一个更加完整的项目 我们现在重新规划下逻辑 两个页面 一个登录页面 一个欢迎页面 登陆页面输入账号密码,登陆成功的话,跳转登陆成功 欢迎页面 并且,更新用 ...
随机推荐
- git切换到某个tag, 从tag切换回当前分支
git clone 整个仓库后使用,以下命令就可以取得该 tag 对应的代码了 git checkout tag_name 但是,这时候 git 可能会提示你当前处于一个“detached HEAD& ...
- 【Leetcode_easy】844. Backspace String Compare
problem 844. Backspace String Compare solution1: class Solution { public: bool backspaceCompare(stri ...
- Windows 2016 服务器安全配置和加固
最近一个项目需要使用Windows服务器,选择安装了最新版的Windows 2016,上一次使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅. 目 ...
- Swoole练习 TCP
TCP <?php $serv = new swoole_server("127.0.0.1", 9501); //监听连接进入事件 $serv->on('connec ...
- npm i node-sass 报错&npm 镜像切换
npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao ...
- MySQL的索引有哪些
一.索引是什么 索引,在MySQL中也叫“键(key)”,是存储引擎用于快速找到记录的一种数据结构.如果把数据库的一张表比作一本书,那索引则是这本书的目录,通过目录,我们能快速找到我们想要的主题所对应 ...
- [转帖]深度分析HBase架构
深度分析HBase架构 https://zhuanlan.zhihu.com/p/30414252 原文链接(https://mapr.com/blog/in-depth-look-hbase-a ...
- django使用pyecharts(1)----django加入echarts
Django 中使用 pyecharts.一.普通django加入echarts Django 模板渲染 Step 0: 新建一个 Django 项目 $ django-admin startproj ...
- CentOS7+Docker+MangoDB下部署简单的MongoDB分片集群
简单的在Docker上快速部署MongoDB分片集群 前言 文中使用的环境如下 OS:CentOS Linux release 7.5.1804 (Core) Docker:Docker versio ...
- Vue.js源码全方位深入解析--学习笔记
模板中的插入变量是如何渲染到DOM上的? initMixin(Vue)->_init->$options-> $mount()当执行该挂载方法时DOM变化 为什么可以通过this访问 ...