首页 > 其他 > 详细

学习使用Django2 前台页面展示

时间:2019-08-29 00:03:50      阅读:82      评论:0      收藏:0      [点我收藏+]

Django  2.1  python 3.7

 

 

创建一个虚拟环境

  python  -m  venv  虚拟环境名称 

进入虚拟环境

下载django  

pip install  django==2.1

 

1 创建项目:
2 
3 django-admin startproject 项目名称   .  -->创建项目  有个点
4 
5 创建应用:
6 python manage.py startapp  创建应用

技术分享图片

技术分享图片

一个干净的Django 框架,我们需要打开settings.py 进行设置

第一步: 创建数据库 : MyDB  mysql 有关命令请看 这篇文章: https://www.cnblogs.com/whatarey/p/11396616.html

技术分享图片

 

第二步: Django应用中的settings.py后台设置中文,数据库修改为mysql配置

 1 DATABASES = {
 2     default: {
 3         ENGINE: django.db.backends.mysql,
 4         NAME: ‘MyDB, #数据库名字,
 5         USER: root, #数据库登录用户名
 6         PASSWORD: 123456, #数据库登录密码
 7         HOST: localhost, #数据库所在主机
 8         PORT: 3306, #数据库端口
 9     }
10 }
11 
12 
13 
14 LANGUAGE_CODE = zh-hans

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘Web‘ --加上项目名
]
 

 第三步:创建模型:

1 class  UserInfo(models.Model):
2     UserName = models.CharField(max_length=20)#用户名
3     create_date = models.DateField()#创建日期
4     pwd=models.CharField(max_length=20)#密码
5     

第四步,后台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 中添加

 1 from django.shortcuts import render
 2 from django.http  import  HttpResponse,Http404
 3 from django.template import loader 
 4 #这里是视图
 5 
 6 def  index(request):
 7     ‘‘‘写法1‘‘‘
 8     # template=loader.get_template(‘Web_Templates/index.html‘)
 9     # # 2.定义上下文
10     # context={"title":"Index","heatde_title":"Index","BodyHtml":"这是我的主页内容<a href=‘‘>hehe</a>"} # 这个上下文是一个字典,它将模板内的变量映射为 Python 对象。
11     # return HttpResponse(template.render(context,request))
12 
13     ‘‘‘写法2‘‘‘
14     data={
15 "title":"Index",
16 "heatde_title":"Index",
17 "BodyHtml":"中间body",
18 "id":[1,2,3,4,5]
19     }
20     context = data
21     return render(request, Web_Templates/index.html, context)
22     # 注意到,我们不再需要导入 loader 和 HttpResponse 。
23     # 不过如果你还有其他函数(比如说 detail, results, 和 vote )需要用到它的话,就需要保持 HttpResponse 的导入。
24 
25 
26 def  getHtml(request,id):
27     list=[0,1,3,4]
28     try:
29         question =list[id] 
30     except  Exception as e:
31         raise Http404("Question does not exist")
32     return render(request, Web_Templates/Show.html, {question: question})

 

第七步:项目中添加urls.py

 1 from  django.urls import path
 2 
 3 from . import views
 4 
 5 app_name="Web"
 6 urlpatterns=[
 7       #url(r‘^$‘
 8     path("",views.index,name="Index"),
 9     path("Show/<int:id>/",views.getHtml,name="Show"),
10 # ‘‘‘
11 #     #   # ex: /polls/
12 #     # path(‘‘, views.index, name=‘index‘),
13 #     # # ex: /polls/5/
14 #     # path(‘<int:question_id>/‘, views.detail, name=‘detail‘),
15 #     # # ex: /polls/5/results/
16 #     # path(‘<int:question_id>/results/‘, views.results, name=‘results‘),
17 #     # # ex: /polls/5/vote/
18 #     # path(‘<int:question_id>/vote/‘, views.vote, name=‘vote‘),
19 # ‘‘‘
20 ]

第八步,应用的urls.py 注册

from django.urls import path,include 导入 include

urlpatterns = [
    path(‘admin/‘, admin.site.urls), 
    # url(r‘^$‘, views.index),
    path(‘‘,include(‘Web.urls‘))  # 导入你app 自己创建的urls
]
 

 

第九步:创建模板 我是在 MyWeb\

技术分享图片技术分享图片

 

 

 第十步,把模板路径添加到项目的settings.py

 1 TEMPLATES = [
 2     {
 3         BACKEND: django.template.backends.django.DjangoTemplates,
 4         DIRS: [os.path.join(BASE_DIR, Templates)],   # 模板‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],
 5         APP_DIRS: True,
 6         OPTIONS: {
 7             context_processors: [
 8                 django.template.context_processors.debug,
 9                 django.template.context_processors.request,
10                 django.contrib.auth.context_processors.auth,
11                 django.contrib.messages.context_processors.messages,
12             ],
13         },
14     },
15 ]

 

 

 index.html
1
<html> 2 <head> 3 <title>{{title}}</title> 4 </head> 5 <body> 6 <h1>{{heatde_title}}</h1> 7 <div> 8 {{BodyHtml}} 9 10 {% for a_link_id in id %} 11 12 <li><a href="{% url ‘Web:Show‘ a_link_id %}" >点我有惊喜,我的编号是:{{a_link_id}}</a></li> 13 {% endfor %} 14 </div> 15 </body> 16 </html>
 show.html
1
<html> 2 <head> 3 <title>111111</title> 4 </head> 5 <body> 6 <h1>{{question}}</h1> 7 <div> 8 {{question}} 9 10 </div> 11 </body> 12 </html>

可看官网:https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial03/

 

 

ok

技术分享图片

 

技术分享图片

 

当id 超过了list的最大值,就会404

技术分享图片

 

 喜欢就点个赞!!!文章写得真不容易。

 

学习使用Django2 前台页面展示

原文:https://www.cnblogs.com/whatarey/p/11426945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!