我需要将文件路径名传递给模块,该模块创建报告文档为pdf,html等.如何从目录名,基本文件名和fileformat字符串构建文件路径名?
在通话时该目录可能存在也可能不存在
例如
dir_name='/home/me/dev/my_reports'
base_filename='daily_report'
format = 'pdf'
Run Code Online (Sandbox Code Playgroud)
我需要创建一个字符串 '/home/me/dev/my_reports/daily_report.pdf'
手动连接片段似乎不是一个好方法.我试过os.path.join
join(dir_name,base_filename,format)
Run Code Online (Sandbox Code Playgroud)
但它给了
/home/me/dev/my_reports/daily_report/pdf
Run Code Online (Sandbox Code Playgroud) 当我遇到关于python的datetime和timedelta实例的另一个线程时,这个问题就产生了
我按照更新jimgardener并阅读评论eyquem,并尝试了一些python代码..我很难理解这里的工作方式(由于我的新手到python状态)..我认为这是正确的问一个新问题
import datetime
#for t1=23:30:00 PM
t1 = datetime.time(23,30,00)
#for t1=00:15:30 AM
t2 = datetime.time(0,15,30)
td1 = datetime.timedelta(hours=t1.hour,minutes = t1.minute,seconds=t1.second)
td2 = datetime.timedelta(hours=t2.hour,minutes = t2.minute,seconds=t2.second)
#substarcting timedeltas
tdiff = td2-td1
Run Code Online (Sandbox Code Playgroud)
打印出这些变量
td1 ==> datetime.timedelta(0, 84600)
td1.seconds ==> 84600
td2 ==> datetime.timedelta(0, 930)
td2.seconds ==> 930
tdiff ==> datetime.timedelta(-1, 2730)
Run Code Online (Sandbox Code Playgroud)
当我看到这些结果时,我注意到了
td1.seconds (ie 84600) is equivalent to
84600/60 ==> 1410 minutes
1410/60 ==> 23.5 hours
or in short,td1 represents the duration **from previous midnight** …Run Code Online (Sandbox Code Playgroud) 我在db中有一组项目.每个项目item都有一个name and a description.我需要实现一个search设施,它接受一些关键字并返回不同的项目,这些项目中至少有一个关键字与名称or描述中的单词匹配.
例如我在db中有三个项目
1.item1 :
name : magic marker
description: a writing device which makes erasable marks on whiteboard
2.item2:
name: pall mall cigarettes
description: cigarette named after a street in london
3.item3:
name: XPigment Liner
description: for writing and drawing
Run Code Online (Sandbox Code Playgroud)
使用关键字"书写"的搜索应该返回魔术标记和XPigment Liner
使用关键字'mall'进行搜索应返回第二项
我尝试单独使用LIKE关键字和IN关键字,..要使IN关键字起作用,查询必须是
SELECT DISTINCT FROM mytable WHERE name IN ('pall mall cigarettes')
Run Code Online (Sandbox Code Playgroud)
但
SELECT DISTINCT FROM mytable WHERE name IN ('mall') …Run Code Online (Sandbox Code Playgroud) 我正在学习使用playframework编写代码来实现webstore销售物品.我已经Admin使用crud和modules实现了该区域secure.现在,我想创建shopping cart一个用户可以添加项目并继续结帐的项目.
我的电子商务的知识是最小的,但我已经通过一些教科书,其实现使用购物车和一些网上商店的功能了servlets.在书籍,使用的车保持Set的CartItemS,每一个包含的实例Product和quantity.之后,该用户将商品添加到购物车,购物车存储在user session.
因此,只要用户进入购物车详细信息页面,它就会显示所有添加的项目.只有当会话被清除时(由于服务器中定义的会话超时或订单下达时),CartItems 才会从这个ShoppingCart.
我想,我可以在playframework中使用Cache来完成上述操作.将CartItem添加到ShoppingCart实例后.我可以
shopcart.add(mycartItem);
Cache.set(session.getId(), shopcart);
..
Run Code Online (Sandbox Code Playgroud)
然后,在另一个页面中,我可以检索购物车及其内容,处理它们并清理购物车.
ShopCart cart = Cache.get(session.getId(),ShopCart.class);
Set<CartItem> items = cart.getCartItems();
processOrder(items,userinfo);
...
cart.clearItems();
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?如果我的想法不正确,请帮我提出建议.
我有一个Enum具有某些字段,我需要在我的play1.2.4模板中访问
public Enum WORKER{
FARMER,SMITH,GARDENER
}
Run Code Online (Sandbox Code Playgroud)
假设我需要检查模板中的"人"变量是否是农民,史密斯或园丁,我该怎么办?
#{if person.Type==WORKER.FARMER}
...do something...
#{/if}
Run Code Online (Sandbox Code Playgroud)
我来了
NullPointerException : Cannot get property 'FARMER' on null object.
Run Code Online (Sandbox Code Playgroud)
因此,模板不知道Enum WORKER.因为无法为Enum创建新实例,我应该如何使Enum可用于模板?
我需要得到一个dict的有序表示,按值的降序排序(dict中的最大值,首先显示).
样品:
mydict={u'jon':30,u'den':26,u'rob':42,u'jaime':31}
Run Code Online (Sandbox Code Playgroud)
我需要向他们展示
rob=42
jaime=31
jon=30
den=28
Run Code Online (Sandbox Code Playgroud)
我试过这个
from operator import itemgetter
sortedvalues=sorted(mydict,key=itemgetter(1))
Run Code Online (Sandbox Code Playgroud)
当我打印列表时,我得到了
[u'jaime', u'den', u'rob', u'jon']
Run Code Online (Sandbox Code Playgroud)
这个清单是无序的!我错过了有关排序内置的用法吗?还是我错误地使用了itemgetter?
在我的游戏中!应用程序,我编写了控制器.安全性为
class Security extends controllers.Secure.Security {
...
static void onDisconnected() {
Application.index();
}
static void onAuthenticated() {
User user = User.find("byEmail",Security.connected()).first();
if(user.isAdmin()) {
Admin.index();
}else {
System.out.println("onAuthenticated()::user not admin");
}
}
Run Code Online (Sandbox Code Playgroud)
我已将路线设定为
GET /admin/? Admin.index
* /admin module:crud
GET / Application.index
Run Code Online (Sandbox Code Playgroud)
当我在页面上说pageX并点击登录链接时,会出现登录表单,我可以登录.如果我以管理员身份登录,则会转到Admin.index(),从而转到Admin/index.html view.So远非常好
但是,当我在pageX上,并点击登录链接时,我希望回到pageX.Instead,调用Application.index()方法,我被带到Application.index.html ..这是预期的行为?登录后我需要做什么才能到达pageX?
更新:
我尝试使用安全控制器中的@Before将URL存储在flash中
class Security extends controllers.Secure.Security {
@Before
static void storeCurrentUrl() {
System.out.println("storeCurrentUrl()");
flash.put("url", "GET".equals(request.method) ? request.url : "/");
}
static boolean authenticate(String username, String password) {
...
}
static void onAuthenticated() {
...
String …Run Code Online (Sandbox Code Playgroud) 在使用时创建在线商店应用程序时play-1.2.4,我遇到了jpa的一些问题.我想使用CRUD modulein play 提供管理区域.在这里,管理员用户可以创建/编辑或删除应用程序中的实体(如Customers,Orders) ,Item等等).
A Customer可以创建Orders.Each Order将有一组CartItems .当Order删除时,CartItem必须删除相应的s .当a Customer被删除时,他的所有订单也必须被删除.我想我可以通过设置cascade属性来获得jpa注释.
我这样建模了
Customer.java
@Entity
public class Customer extends Model {
@Email
@Required
public String email;
...
@OneToMany(mappedBy="customer", cascade=CascadeType.ALL)
public List<Order> orders;
@OneToOne
public PayMethod currentPayment;
...
}
Run Code Online (Sandbox Code Playgroud)
Order.java
@Entity
public class Order extends Model {
@OneToMany( cascade=CascadeType.ALL,orphanRemoval=true,fetch=FetchType.EAGER)
public Set<CartItem> cartItems;
@ManyToOne
public Customer customer;
@ManyToOne
public PayMethod paymentMethod;
... …Run Code Online (Sandbox Code Playgroud) 在我的网页中,我需要在徽标文本下方放置一些宽度为水平的彩色条带.
我试着用这个css:
#colorstrip{
width: 100%; height: 2px;
border-style: solid;
border-color: white;
}
Run Code Online (Sandbox Code Playgroud)
用这个HTML:
<span id="logo"> My site</span>
<div id="colorstrip"/>
Run Code Online (Sandbox Code Playgroud)
但它显示了一个白色矩形.如何使它成为一个填充的?或者我是否必须使用图像(可能是白色方块)并将其作为重复的div的背景?
使用div来显示这个细条是正确的方法吗?你有什么建议?
我正在尝试部署我在网上找到的网络应用程序,它应该充当jpql shell webapp演示.尝试在tomcat中部署和运行它,我创建了一个persistence.xml(在src目录中),如下所示
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="pu" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>jpql.Employee</class>
<class>jpql.Job</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost/jpqldemodb"/>
<property name="hibernate.connection.username" value="damon"/>
<property name="hibernate.connection.password" value="damon"/>
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
和EntityManager util(从另一个站点借来)
package jpql.utils;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.apache.log4j.Logger;
public class EntityManagerUtil {
static Logger logger = Logger.getLogger(EntityManagerUtil.class);
private static EntityManager em=null;
public static EntityManager getInstance() {
if ( em == null) {
EntityManagerFactory emf; …Run Code Online (Sandbox Code Playgroud)