通过留言版功能回顾django基础知识

  • 将对于django目录结构,使用Django快速搭建可以提交的表单页面,models.py , urls.py, views.py。
  • 从数据库中取出数据展示到html中:Django Template的配置。
  • 即django的基础知识通过这个留言板项目进行一个全面细致的学习。

3-1 django目录结构

django目录:

projectname : 保存Django项目的urls,setting,uwsgi文件

如下图新建一个Django项目DjangoGetStarted,使用我们上章节中已存在的虚拟环境DjangoTest (里面已经装好了django)

 
mark

django自动生成的目录

初始化完成后的目录如下:(如果不是,那么你们可能创建的不是django项目)

 
mark

可以看到主目录DjangoGetStarted与项目目录DjangoGetStarted

  • DjangoGetStarted(文件夹):

    • setting.py: 项目全局配置文件
    • urls.py: 主要的urls配置入口
    • wsgi.py: 是Django启动需要的文件。
  • templates(文件夹): 放置html文件
  • manage.py: 启动Django需要的主要文件。(主要的Django命令都通过manage.py运行)

还需要我们自己创建的目录

app是Django里一个一个应用的文件夹单位。

通过 Tools -> Run manage.py Task创建app:

 
mark

startapp message

可以看到当输入startapp message之后,创建了message应用。并存放在了:与项目目录同级目录。

 
mark

新建static目录

使用static目录来存放网站的静态文件:js,css,图片等。

新建log目录

使用log目录来存放网站的日志文件

新建media目录

使用media目录存放用户上传的图片等资源。

解决项目大了之后app过多问题

  1. 新建文件夹 apps
  2. 将message文件夹拖入apps文件夹内:会自动生成__init__.py文件表明这是一个包。使得apps文件夹可导入。
 
mark

这时我们就会发现在导入我们的message的内容就得配置较长的路径。

 
mark

每次前面都得加上apps.,这可烦死人啦。

解决方案奉上

apps目录右键markSource Root(Mark 方法查看第一章pycharm简单使用:目录颜色不同的原因)

 
mark

mark成功之后变蓝(变绿的话,只能摸摸头了,当然选择原谅),然后可以直接使用短路径进行import

Mark后Pycharm 不报错,Cmd下运行报错。

Mark后pycharm知道这是一个项目的Souce Root路径了,但是cmd并不知道。

在项目目录下通过cmd命令行使用python manage.py runserver

 
mark

pycharm中mark只是pycharm自身可以进行识别短路径。

解决方案:

我们在setting文件中配置我们的apps路径:

 
mark

图解读:我们需要在setting中向上图一样设置,程序就会接着报错。(换了一个错误了,滑稽脸)

import sys
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))

上述代码为将apps拼接项目绝对路径后的路径插入当前系统的环境变量path中,这样就可以成功解决(个屁屁啊)。

成功性测试(测试已失败):

这个import放到manage.py文件是不行的 你把manage.py中这行删除 因为django整个的配置还没有启动好 import django的model是不行的,

插播:忘了失败吧,我偷学下面方法养你。

终极解决:将这个import方法比如urls.py.等可以成功启动。或者自行删除该import。

 
mark

红色警告:

You have unapplied migrations; your app may not work properly
until they are applied. Run 'python manage.py migrate' to apply them.

是因为我们没有进行数据库models进行初始化migrate.

python manage.py migrate我们之后会用到,现在不要做。

github仓库项目初始化第一次commit。

 
mark

输入用户名密码,点击login。

 
mark

选择左侧导航中Git 设置你的git.exe的路径

 
mark

点击Share project on GitHub会弹出下图窗口

 
mark

填写你的项目名称描述。点击share

原文学习来自简书,作者:天涯明月笙
原文链接:https://www.jianshu.com/p/684f6b4eb3f5

django+xadmin在线教育平台(三)的更多相关文章

  1. django+xadmin在线教育平台(五)

    3-3 django orm介绍与model设计 上节教程完成后代码(来学习本节前置条件): 对应commit: 留言板前端页面展示.本次内容截止教程3-2结束. 可能现在你还在通过手写sql语句来操 ...

  2. django+xadmin在线教育平台(一)

    大家好,此教程为在慕学网的实战教程Python升级3.6 强力Django+杀手级Xadmin打造在线教育平台的学习笔记,不对望指正! 使用Django+Xadmin打造在线教育平台(Python2, ...

  3. django+xadmin在线教育平台(四)

    3-2 配置表单页面 必要的该说的,该了解的 前置条件: 你已经学习了前面教程.将项目的文件夹目录结构,setting配置等修改完毕与我保持一致. 本节通过Django快速的配置一个留言板页面来学习 ...

  4. django+xadmin在线教育平台(十)

    剩余app model注册 courses注册 新建courses/adminx.py: # encoding: utf-8 __author__ = 'mtianyan' __date__ = '2 ...

  5. django+xadmin在线教育平台(十一)

    6-1 首页和登录页面的配置 用户访问我们的根目录,我们需要把html文件返回给用户.因此我们第一步把html文件放入template目录.   mark 在html中找到首页的html.拷贝到我们的 ...

  6. django+xadmin在线教育平台(九)

    django admin介绍 上一章我们进行了需求分析和数据库设计.本章我们来快速搭建一个可用的后台管理系统. 后台管理系统特点: 权限管理 少前端样式.(样式一般不是很看重), 快速开发 djang ...

  7. django+xadmin在线教育平台(六)

    4-1 使用py3.6和django1.11开发系统前注意事项 直接通过Python3.6和django最新版本来开发我们的系统的一些注意事项. 原版本: Python 2.7 & djang ...

  8. django+xadmin在线教育平台(十七)

    8-1 课程列表 拷贝课程列表页到template目录 创建课程相关的urls.py Mxonline2/urls.py中声明包含到course的url中: # 课程app的url配置 url(r&q ...

  9. django+xadmin在线教育平台(十六)

    7-7 modelform 提交我要学习咨询1 对应表userask form会对字段先做验证,然后保存到数据库中. 可以看到我们的forms和我们的model中有很多内容是一样的.我们如何让代码重复 ...

随机推荐

  1. spock和junit测试报告

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  2. form中onsubmit的使用

    form 中的onsubmit在点submit按钮时被触发,如果return false;则结果不会被提交到action中去(也就是提交动作不会发生),如果不返回或者返回true,则执行提交动作.(& ...

  3. ZOJ 5638——Prime Query——————【线段树区间更新,区间查询,单点更新】

    Prime Query Time Limit: 1 Second      Memory Limit: 196608 KB You are given a simple task. Given a s ...

  4. MySQL三种存储引擎总结

    MySQL三种存储引擎 MyISAM.InnoDB.MEMORY 1.MyISAM MyISAM,3.23.34a前的默认存储引擎. 优缺点 优点 在于占用空间小,处理速度快. 缺点 不支持事务的完整 ...

  5. jQuery 获取和设置表单元素

    jQuery提供了val()方法,使用它我们可以快速地获取和设置表单的文本框.单选按钮.以及单选按钮的值. 使用val()不带参数,表示获取元素的值 使用val()给定参数,则表示把值赋给元素 如下: ...

  6. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第十三天(非原创)

    文章大纲 一.课程介绍二.SolrCloud介绍与搭建三.工程部署四.参考资料下载五.参考文章   一.课程介绍 一共14天课程(1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn的使用 ...

  7. 输入网址调用第三方接口获取结果_java

    最近公司给了一个第三方服务的网址,要我调用后返回需要用到的信息 具体网址:http://www.xxxx.com/xxx-api/xxxx/getXxxByUserId?userId=" + ...

  8. SQL语句中的having和where的区别

    --首先,两个都是用来进行筛选的: --区别在于 1.当分组筛选的时候使用having eg: 在emp中,查出最低工资小于1000的部门号 select deptno from emp group ...

  9. 配置Ubuntu DNS

    首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询.要访问Ubuntu DNS 服务器来进行查询,需要设置/etc/resolv.conf文件 ...

  10. Unity3D Shader性能排行

    整体上,性能由高到低: Unlit,仅为纹理,光线不产生效果 VertexLit Diffuse 漫反射 Normal Mapped 法线贴图 Specular 高光 Normal Mapped Sp ...