内蒙古网络自学网站建设,wordpress打赏按钮,客户关系管理的重要性,wordpress视频教育主题一、URL 对于一个不会写正则表达式的蒟蒻来说#xff0c;在urls.py中就只能傻傻的写死名字#xff0c;但是即便这样#xff0c;还会有很多相对路径和绝对路径的问题#xff08;相对ip端口的路径#xff09;#xff0c;因为我们网页中涉及到页面跳转#xff0c;涉及到发送…一、URL 对于一个不会写正则表达式的蒟蒻来说在urls.py中就只能傻傻的写死名字但是即便这样还会有很多相对路径和绝对路径的问题相对ip端口的路径因为我们网页中涉及到页面跳转涉及到发送请求的url这些地方都很容易导致视图无法正确响应对应路由而报错。 试了很久开发出了一个最蠢的办法就是无论在哪个模版中按我这种写法就一定能访问到对应的路由按照前后各补一个‘/’的规则在每个APP中的urls.py里也给每个路由写成带斜杠和不带斜杠两种因为大概率有其他地方会忘记前后都补斜杠我也没去搞清楚这里的路由规则总之不想自己在这里吃亏的话就把两种都写上 这种模版和这种urls的写法包能访问到的不存在路由接收不到的情况而且保证一定按绝对路径访问就是路由分发的时候所有前缀都要补上主路由分发到了user和work两个app下那么在user里的路由假定为user_childuser所接收的前缀为user的路由的话那么我们写就应该写 /user/user_child/ 二、不同APP之间models的访问 因为Django中导包的特点同一个app下的包必须用相对路径导同一目录就是from . import sorfware1上一级目录就是 from ..** import software1但是导其他app下的models.py则直接用 from app_name.models import yourmodel1,yourmodel2 ....
就不再用相对路径导了尽管pycharm可能识别不到但启动django项目不会报错且能正常调用到另一app的模型类的相关数据 三、数据解析 前端传的数据只要不是序列化后的数据都是直接用request.GET或者request.POST取如果用Jquery的办法将一个form表单里所有的输入进行序列化打包发送post请求的话后端要从request.body取到序列化后的字符串并进行解码转字典如果是一对一的数据还要进一步转字符串 四、对web的调试 我对项目中web页面的调试往往都在有大量js代码的页面因为可能出现某些特性被废除元素加载先后未保障请求相关的库资源失败相关静态资源没有加载出来的问题。这里建议养成打开F12调试面板的习惯每次请求都看看是不是都返回200OK以及点进去看具体加载的文件内容是不是和自己修改后的一致。 有可能是浏览器缓存的原因有可能是项目修改还未重新部署后端代码改了是能显而易见发现的因为终端会提示但模版中的代码或者静态文件修改了终端不会提示一个小办法就是观察pycharm里相关语句是否变色。但不是所有前端语句都能被pycharm识别到我调试的时候一般写很多console.log这个是会变色的如果没变色就去刷新页面你会发现加载出的代码里也不会有你更改的内容 对于掺杂Jqueryajax这种的页面一定一定要注意某些操作要在页面元素全部加载完成之后才能做有的函数绑定了相关id的标签但其实这个标签还没有渲染到页面上那就根本取不到这个DOM也就根本不能正确执行后面的操作 五、开发注意事项 如果做的分工是前后端分离后端一定要事先弄清楚哪个页面有哪些功能要考虑哪些参数值要从请求中取哪些要保存到session里弄清功能以后要保证项目进度绝对不能等前端把所有web发过来再开始写代码因为web发过来与后端代码进行嵌套也是不小的工作量单纯的后端处理逻辑的代码自己想调试的话就自己写一点form表单inputp标签button啥的意思一下数据的传递就行了。 你无法想象到前端的最终页面在项目中能否很好的展示有的效果可能只在本地上正常挂到服务器上就不对劲这时候将后端代码嵌套进去要给前端反复的反馈问题以及调整页面样式。。其实这里有很多是我嵌套代码的时候可能不小心漏掉了一些双标签的闭合部分导致一些父子标签的关系混乱了还有可能是后端处理模版的时候进行循环渲染然后为了结合相应的js代码导致更改了一些标签的id这也会导致样式出岔子。尽量写样式的时候让前端控制在class里而不是通过id虽然也只会有少数这种情况。